diff --git a/README.md b/README.md index a020ba48..d3f2199f 100755 --- a/README.md +++ b/README.md @@ -84,12 +84,12 @@ For ReceiptBillAltName options For Using Star Printer *** Need to change these print settings - 1) settings/print_settings => OrderItemStarPdf - 2) settings/print_settings => ReceiptBillStarPdf - 3) settings/print_settings => SaleItemsStarPdf + 1) settings/print_settings/unique_code => OrderItemStarPdf + 2) settings/print_settings/unique_code => ReceiptBillStarPdf + 3) settings/print_settings/unique_code => SaleItemsStarPdf *** Other print settings aren't need to change. -For Sale Items Summary Include at CloseCashierPrint +For Show Sale Items Summary at CloseCashierPrint 1) settings/print_settings a) Check => Shift Sale Items diff --git a/app/assets/javascripts/addorder.js b/app/assets/javascripts/addorder.js index 6ab73e7a..f5a44e26 100755 --- a/app/assets/javascripts/addorder.js +++ b/app/assets/javascripts/addorder.js @@ -1,3 +1,4 @@ +//middle edit $(function() { var role = $('#role').val(); var second_display_lookup = $("#display_type").val(); @@ -54,28 +55,16 @@ $(function() { if (type ==-1 && modify_order == -1){ image_path = product[field].image_path.url; } - }else{ - image_path = "/image/logo.png"; - } + - row = '
' + row = '
' +'
' +'
' +'
'+ product[field].name +'
' - +"' + +'
' - +"
" - - // +"
" - // +"" - // +"
" - - +'' + +'
' + +'' + +'
'; + } + else + { + row = '
' + +'
' + +'
' + +"
" + +'
'+ product[field].name +'
' + +'
' + + + +'
' + + +"
" + + +'
' + + +'' + + +'
'; + } $('.menu_items_list').append(row); } } @@ -499,7 +543,6 @@ $(function() { //click item row for add order $(document).on('click', '.menu_item_box', function(event){ - $('.attributes-list').empty(); $('.options-list').empty(); $('#modal_box_img').empty(); @@ -844,8 +887,11 @@ $(function() { e.preventDefault(); $("#oqs_loading_wrapper").show(); var cashier_type = $("#link_type").val(); + localStorage.setItem('cashier_type',cashier_type); quick_service = window.location.href.indexOf("quick_service"); + localStorage.setItem('quick_service',quick_service); food_court = window.location.href.indexOf("food_court"); + localStorage.setItem('food_court',food_court); if (quick_service != -1 || food_court != -1) { type = cashier_type; var table_type = $('#table_type').text(); @@ -1379,6 +1425,7 @@ $(function() { var menu_list = $('.menu_items_list'); menu_list.empty(); for(var field in menu_items) { + console.log(menu_items[field].instances); if (menu_items[field].is_sub_item == false) { instances = menu_items[field].instances ; @@ -1439,52 +1486,109 @@ $(function() { }else{ image_path = menu_items[field].image; } - - }else{ - if (modify_order) { - image_path = "../../image/logo.png"; - }else{ - image_path = "image/logo.png"; - } - } + row = '
' + +'
' + +'
' + +'
'+ menu_items[field].name +'
' + + +'
' + +"
" + +'
' + +'' + +'
'; ; + }else{ + row = '
' + +'
' + +'
" + + +'
'+ menu_items[field].name +'
' + +'
' + +"
" + +'
' + +'' + + + +'
' + +'
'; + } - row = '
' - +'
' - +'
' - +'
'+ menu_items[field].name +'
' - +"
" - +"" - +add+ '' - +'
' - +'
' - +"
" - - // +"
" - // +"" - // +"
" - - +'' - +'
' - +'
'; ; $('.menu_items_list').append(row); } //end instances in menu-items alest 1 instance diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 8e3ede95..bd9018fb 100755 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -35,6 +35,7 @@ //= require BSBMaterial/demo.js //= require custom.js //= require jquery-fileupload/basic +//= require induties/induties.js $(document).ready(function() { $('.count-to').countTo(); diff --git a/app/assets/javascripts/induties/assign_in_duties.coffee b/app/assets/javascripts/induties/assign_in_duties.coffee new file mode 100644 index 00000000..24f83d18 --- /dev/null +++ b/app/assets/javascripts/induties/assign_in_duties.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/javascripts/induties/induties.js b/app/assets/javascripts/induties/induties.js new file mode 100644 index 00000000..e69de29b diff --git a/app/assets/javascripts/order_reservation.js b/app/assets/javascripts/order_reservation.js index d60c2f08..f74f1fa9 100644 --- a/app/assets/javascripts/order_reservation.js +++ b/app/assets/javascripts/order_reservation.js @@ -288,6 +288,8 @@ function show_order_detail(url,sr_no){ data: {}, dataType: "json", success: function(data) { + var scrollTo = document.getElementById('div_card_order'); + $("HTML, body").animate({scrollTop: scrollTo.offsetTop - 60 }, 500 ); // console.log(data); $("#order_remark").text(""); $(".tbl_customer").show(); @@ -373,24 +375,49 @@ function show_order_detail(url,sr_no){ item_price = items[i].unit_price; } var total = items[i].qty * item_price; - if(items[i].options!='[]' && items[i].options!="" && items[i].options!=null){ - row = '' - +''+items[i].item_name - +'
' - +' '+items[i].options+'
'+ - ''+items[i].qty+ ' X'+items[i].unit_price+'' - +'' - +''+ total +'' - +''; - }else{ - row = '' - +''+items[i].item_name - +'
'+ - ''+items[i].qty+ ' X'+items[i].unit_price+'' - +'' - +''+ total +'' - +''; + var check_mobile =document.getElementsByName("summary_items_mobile")[0].value; + if (check_mobile == "true"){ + if(items[i].options!='[]' && items[i].options!="" && items[i].options!=null){ + row = + '' + +''+items[i].item_name + +'
' + +' '+items[i].options+''+ + ''+items[i].qty+ '' + +'' + +''+ total +'' + +''; + }else{ + row = '' + +''+items[i].item_name + +' '+ + ''+items[i].qty+ '' + +''+ total +'' + +''; + } } + else{ + if(items[i].options!='[]' && items[i].options!="" && items[i].options!=null){ + row = '' + +''+items[i].item_name + +'
' + +' '+items[i].options+'
'+ + ''+items[i].qty+ ' X'+items[i].unit_price+'' + +'' + +''+ total +'' + +''; + }else{ + row = '' + +''+items[i].item_name + +'
'+ + ''+items[i].qty+ ' X'+items[i].unit_price+'' + +'' + +''+ total +'' + +''; + } + } + + $('.summary-items').append(row); } diff --git a/app/assets/stylesheets/addorder.scss b/app/assets/stylesheets/addorder.scss index 1ffdb8f0..1cda9286 100755 --- a/app/assets/stylesheets/addorder.scss +++ b/app/assets/stylesheets/addorder.scss @@ -3,12 +3,12 @@ section .content{ } .custom-card-head{ height: 40px; - #background-color: #54A5AF; - background-color: #a1aade; + background-color: #79D0F2; + color :#fff; + #background-color: #a1aade; opacity: 0.8; padding:5px; - color :#000000; - + font-weight:400; } .custom-card { border: 2px solid rgba(0, 0, 0, 0.125) !important; @@ -16,6 +16,10 @@ section .content{ } .custom-card-footer{ padding:0.35rem 1.25rem !important; + bottom:0; + position: absolute; + width: 100%; + font-weight:900; } .custom-card-block { @@ -192,7 +196,7 @@ section.content{ } .menu_item_box{ - cursor: pointer; + cursor: pointer; } /*Logout Icon*/ @@ -300,4 +304,33 @@ i.logout_icon{ .ls-closed section.content { margin-left: 15px !important; margin-right: 15px !important; -} \ No newline at end of file +} +.product_box{ + position:relative; + text-align:center; + font-weight:900; + color:#fff; + font-size:1.5em; + margin:auto; +} +.custom-card-no-img-head{ + #background-color: #54A5AF; + opacity: 0.8; + padding:5px; + color :#273040; + min-height:100px; + height: 150px; + background-color:#79D0F2; + +} +.menu_item_no_img_box{ + cursor: pointer; + +} +.custom-card-no-img-footer{ + padding:0.35rem 1.25rem !important; + +} +.custom-flex-footer{ + display:flex; +} diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 5b0c6845..e0308d12 100755 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -11,6 +11,7 @@ @import "BSBMaterial/style"; @import "BSBMaterial/themes/all-themes"; @import "reset"; +@import "induties/assign_in_duties"; /*@import "bootstrap-select/css/bootstrap-select.min";*/ diff --git a/app/assets/stylesheets/induties/assign_in_duties.scss b/app/assets/stylesheets/induties/assign_in_duties.scss new file mode 100644 index 00000000..f51fbcff --- /dev/null +++ b/app/assets/stylesheets/induties/assign_in_duties.scss @@ -0,0 +1,96 @@ +// Place all the styles related to the induties/assign_in_duties controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ + +.custom-card-head{ + height: 40px; + background-color: grey; + color :#fff; + opacity: 0.8; + padding:5px; + font-weight:400; + align-items: center; +} +.form-group .form-control { + width: 100%; + border: none; + box-shadow: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + -ms-border-radius: 0; + border-radius: 0; + padding-left: 0; +} +.radio-room{ + margin-right:2rem; +} +.radio-table{ + margin-left:1rem; +} +.bmd-form-group { + position: relative; + padding-top: 0 !important; +} +.btn_create_induty{ + display: inline; + padding: 1.5rem; + margin: 0; +} +.create_induty_card{ + min-height:500px; +} + +#save_induties_by_name{ + -webkit-appearance: none; +} + +.checkboxLabel:before{ + content: '\e40c'; + font-family: "Material Icons"; + font-size: 25px; + vertical-align: middle; + margin-right: 5px; + color: #2196F3; +} + +#save_induties_by_name:checked ~ .checkboxLabel:before{ + content: '\e86c'; +} +.checkboxLabel { + font-size: 18px !important; +} +.add_more{ + content: '\e40c'; + font-family: "Material Icons"; + font-size: 25px; + vertical-align: middle; + margin-right: 5px; + color: #2196F3; +} +.success-msg { + color: #270; + background-color: #DFF2BF; + margin: 10px 0; + padding: 10px; + border-radius: 3px 3px 3px 3px; + display: none; + margin-right: 0.5rem; + margin-left: 0.5rem; +} +.show_all_commissioner_card{ + min-height: 830px; + max-height: 830px; + overflow: scroll; +} +.sweet-alert p { + font-size: 14px !important; + font-weight:bold; +} +.sweet-alert { + top :0; + margin-top: 20px !important; +} +.add_to_charges{ + width:100%; + padding:1rem; +} \ No newline at end of file diff --git a/app/assets/stylesheets/order_reservation.scss b/app/assets/stylesheets/order_reservation.scss index e46ce76d..d6e9a7fb 100644 --- a/app/assets/stylesheets/order_reservation.scss +++ b/app/assets/stylesheets/order_reservation.scss @@ -99,4 +99,10 @@ td.grand-total-padding { font-size: 17px; padding-top: 20px !important; +} +.mobile_tab-col-teal > li { + margin:auto; +} +.mobile_tab-col-teal{ + margin-left:1.5rem; } \ No newline at end of file diff --git a/app/assets/stylesheets/sx_font.css b/app/assets/stylesheets/sx_font.css index b8b08f2a..b08657e5 100755 --- a/app/assets/stylesheets/sx_font.css +++ b/app/assets/stylesheets/sx_font.css @@ -39,4 +39,4 @@ /* Support for IE. */ font-feature-settings: 'liga'; -} \ No newline at end of file +} diff --git a/app/controllers/api/api_controller.rb b/app/controllers/api/api_controller.rb index a5112ffe..caa1efb5 100755 --- a/app/controllers/api/api_controller.rb +++ b/app/controllers/api/api_controller.rb @@ -21,6 +21,7 @@ class Api::ApiController < ActionController::API def current_login_employee @employee = Employee.find_by_token_session(current_token) + puts @employee.to_json end # def lookup_domain diff --git a/app/controllers/api/bill_controller.rb b/app/controllers/api/bill_controller.rb index b5cb5573..214e1300 100755 --- a/app/controllers/api/bill_controller.rb +++ b/app/controllers/api/bill_controller.rb @@ -43,7 +43,7 @@ class Api::BillController < Api::ApiController if booking if booking.sale_id.nil? @sale = Sale.new - @status, @sale_id = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee, cashier, order.source) + @status, @sale_id = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee, cashier, order.source,params[:current_checkin_induties_count]) @sale_data = Sale.find_by_sale_id(@sale_id) else @status = true @@ -177,7 +177,7 @@ class Api::BillController < Api::ApiController if @booking.sale_id.nil? @sale = Sale.new - @status, @sale_id = @sale.generate_invoice_from_booking(@booking.booking_id, current_login_employee, cashier, order.source) + @status, @sale_id = @sale.generate_invoice_from_booking(@booking.booking_id, current_login_employee, cashier, order.source,params[:current_checkin_induties_count]) @sale_data = Sale.find_by_sale_id(@sale_id) else @status = true diff --git a/app/controllers/api/payment/mobilepayment_controller.rb b/app/controllers/api/payment/mobilepayment_controller.rb new file mode 100644 index 00000000..cd9f9e00 --- /dev/null +++ b/app/controllers/api/payment/mobilepayment_controller.rb @@ -0,0 +1,166 @@ +class Api::Payment::MobilepaymentController < Api::ApiController + # skip_before_action :authenticate + def cash + + cash = params[:cash] + sale_id = params[:sale_id] + member_info = nil + type = params[:type] + tax_type = params[:tax_type] + path = request.fullpath + latest_order_no = nil + cashier_id = params[:cashier_id] + current_user = Employee.find(cashier_id) + if(Sale.exists?(sale_id)) + saleObj = Sale.find(sale_id) + sale_items = SaleItem.get_all_sale_items(sale_id) + shop_detail = Shop.first + # rounding adjustment + if !path.include? ("credit_payment") + if shop_detail.is_rounding_adj + a = saleObj.grand_total % 25 # Modulus + b = saleObj.grand_total / 25 # Division + #not calculate rounding if modulus is 0 and division is even + #calculate rounding if modulus is zero or not zero and division are not even + if (a != 0.0 && b%2 != 0.0) || (a==0.0 && b%2 !=0) + new_total = Sale.get_rounding_adjustment(saleObj.grand_total) + rounding_adj = new_total-saleObj.grand_total + saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) + end + end + end + # end rounding adjustment + + sale_payment = SalePayment.new + sale_payment =sale_payment.process_payment(saleObj, current_user, cash, "cash") + if sale_payment[0] + @cash ={"change_amount"=>sale_payment[3],"balance_amount"=>sale_payment[4] ,"receipt_url"=>''} + end + @out = true,@cash + # if !path.include? ("credit_payment") + # rebate_amount = nil + + # # For Cashier by Zone + # # bookings = Booking.where("sale_id='#{sale_id}'") + # bookings = Booking.find_by_sale_id(sale_id) + + # shift = ShiftSale.current_open_shift(current_user.id) + # if !shift.nil? + # cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) + # else + # if bookings.dining_facility_id.to_i > 0 + # table = DiningFacility.find(bookings.dining_facility_id) + # cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) + # cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id) + + # type = 'payment' + # from = getCloudDomain #get sub domain in cloud mode + # ActionCable.server.broadcast "order_channel",table: table,type:type,from:from + # else + # shift = ShiftSale.find(saleObj.shift_sale_id) + # cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) + # end + # end + + # # For Print + # # if ENV["SERVER_MODE"] != "cloud" #no print in cloud server + # receipt_bill_a5_pdf = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf + # unique_code = "ReceiptBillPdf" + # print_settings = PrintSetting.all + # if !print_settings.nil? + # print_settings.each do |setting| + # if setting.unique_code == 'ReceiptBillPdf' + # unique_code = "ReceiptBillPdf" + # elsif setting.unique_code == 'ReceiptBillStarPdf' + # unique_code = "ReceiptBillStarPdf" + # end + # end + # end + + # if !receipt_bill_a5_pdf.empty? + # receipt_bill_a5_pdf.each do |receipt_bilA5| + # if receipt_bilA5[0] == 'ReceiptBillA5Pdf' + # if receipt_bilA5[1] == '1' + # unique_code = "ReceiptBillA5Pdf" + # end + # end + # end + # end + + # customer= Customer.find(saleObj.customer_id) + + # # get member information + # rebate = MembershipSetting.find_by_rebate(1) + # credit_data = SalePayment.find_by_sale_id_and_payment_method(sale_id,'creditnote') + + # if customer.membership_id != nil && rebate && credit_data.nil? + # member_info = Customer.get_member_account(customer) + + # if member_info["status"] == true + # rebate_amount = Customer.get_membership_transactions(customer,saleObj.receipt_no) + # current_balance = SaleAudit.paymal_search(sale_id) + # end + # end + + # #orders print out + # if params[:type] == "quick_service" + # booking = Booking.find_by_sale_id(sale_id) + # if booking.dining_facility_id.to_i>0 + # table_id = booking.dining_facility_id + # else + # table_id = 0 + # end + + # latest_order = booking.booking_orders.order("order_id DESC").limit(1).first() + # if !latest_order.nil? + # latest_order_no = latest_order.order_id + # end + + # booking.booking_orders.each do |order| + # # Order.pay_process_order_queue(order.order_id, table_id) + # oqs = OrderQueueStation.new + # oqs.pay_process_order_queue(order.order_id, table_id) + + # assign_order = AssignedOrderItem.assigned_order_item_by_job(order.order_id) + # from = getCloudDomain #get sub domain in cloud mode + # ActionCable.server.broadcast "order_queue_station_channel",order: assign_order,from:from + # end + + # end + + # #for card sale data + # card_data = Array.new + # card_sale_trans_ref_no = Sale.getCardSaleTrans(sale_id) + # if !card_sale_trans_ref_no.nil? + # card_sale_trans_ref_no.each do |cash_sale_trans| + # card_res_date = cash_sale_trans.res_date.strftime("%Y-%m-%d").to_s + # card_res_time = cash_sale_trans.res_time.strftime("%H:%M").to_s + # card_no = cash_sale_trans.pan.last(4) + # card_no = card_no.rjust(19,"**** **** **** ") + # card_data.push({'res_date' => card_res_date, 'res_time' => card_res_time, 'batch_no' => cash_sale_trans.batch_no, 'trace' => cash_sale_trans.trace, 'pan' => card_no, 'app' => cash_sale_trans.app, 'tid' => cash_sale_trans.terminal_id, 'app_code' => cash_sale_trans.app_code, 'ref_no' => cash_sale_trans.ref_no, 'mid' => cash_sale_trans.merchant_id}) + # end + # end + + # #card_balance amount for Paymal payment + # card_balance_amount = SaleAudit.getCardBalanceAmount(sale_id) + + # # get printer info + # print_settings=PrintSetting.find_by_unique_code(unique_code) + # # Calculate Food and Beverage Total + # item_price_by_accounts = SaleItem.calculate_price_by_accounts(saleObj.sale_items) + # discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(saleObj.sale_items) + # other_amount = SaleItem.calculate_other_charges(sale_items) + + # printer = Printer::ReceiptPrinter.new(print_settings) + # filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_detail, "Paid",current_balance,card_data,other_amount,latest_order_no,card_balance_amount,nil) + + # render json: JSON.generate({:status => saleObj.rebate_status, :message => "Can't Rebate coz of Sever Error ", :filename => filename, :receipt_no => sale_receipt_no, :printer_name => printer_name}) + + # #end + # end + else + @out =false,"Something wrong!" + end + + end +end diff --git a/app/controllers/crm/customers_controller.rb b/app/controllers/crm/customers_controller.rb index 50c0da09..aacfa39f 100644 --- a/app/controllers/crm/customers_controller.rb +++ b/app/controllers/crm/customers_controller.rb @@ -8,7 +8,7 @@ class Crm::CustomersController < BaseCrmController filter = params[:filter] filter_card_no = params[:filter_card_no] type = params[:type] - @customer_update_phone_email =false + @customer_update_phone_email_membertype =false if filter_card_no=="" @crm_customers = Customer.all elsif !filter_card_no.nil? @@ -46,13 +46,16 @@ class Crm::CustomersController < BaseCrmController else @crm_customers.each do |customer| if customer.contact_no != response["customer_data"]["phone"] - @customer_update_phone_email =true + @customer_update_phone_email_membertype =true end if customer.email != response["customer_data"]["email"] - @customer_update_phone_email =true + @customer_update_phone_email_membertype =true end if customer.name != response["customer_data"]["name"] - @customer_update_phone_email =true + @customer_update_phone_email_membertype =true + end + if customer.membership_type.to_i != response["customer_data"]["member_group_id"] + @customer_update_phone_email_membertype =true end end end @@ -122,7 +125,6 @@ class Crm::CustomersController < BaseCrmController #get customer amount @customer = Customer.find(params[:id]) @response = Customer.get_membership_transactions(@customer) - puts @response.to_json Rails.logger.debug "get membership transactions response" Rails.logger.debug @response.to_json @@ -555,13 +557,14 @@ class Crm::CustomersController < BaseCrmController end end - def customer_update_phone_email + def customer_update_phone_email_member_type @customer = Customer.find(params[:id]) response = Customer.search_paypar_account_no(@customer.paypar_account_no) if response["status"] == true @customer.name =response["customer_data"]["name"] @customer.contact_no =response["customer_data"]["phone"] @customer.email =response["customer_data"]["email"] + @customer.membership_type =response["customer_data"]["member_group_id"] @customer.save respond_to do |format| format.html { redirect_to crm_customers_path } diff --git a/app/controllers/induties/assign_in_duties_controller.rb b/app/controllers/induties/assign_in_duties_controller.rb new file mode 100644 index 00000000..528c009f --- /dev/null +++ b/app/controllers/induties/assign_in_duties_controller.rb @@ -0,0 +1,71 @@ +class Induties::AssignInDutiesController < ApplicationController + def index + @commissioners =[] + @commiss=Commissioner.active.all.order(created_at: :desc) + @commiss.each do|commissioner| + check_in_count =InDuty.where('commissioner_ids =? and out_time is null', commissioner.id.to_json).count; + @commissioners.push({ "id"=>commissioner.id, + "name"=>commissioner.name, + "image_path"=>commissioner.image_path.url, + "check_in_count"=>check_in_count + }) + + end + @booking_id = params[:booking_id] + + end + + def get_all_occupied_dining + commissionerIds =params[:id] + @check_in_commissioner =InDuty.select("in_duties.*,dining_facilities.type as dinning_type") + .joins(" LEFT JOIN dining_facilities on dining_facilities.id = in_duties.dinning_id").where('commissioner_ids =? and out_time is null', commissionerIds).order(created_at: :asc); + respond_to do |format| + format.json { render json: @check_in_commissioner.to_json } + end + end + def induties_create + commissioner_ids =params[:commissionerId] + booking_id =params[:booking_id] + dinning_id = params[:dinning_id] + induty = InDuty.new + induty.dinning_id = dinning_id + induty.booking_id = booking_id + induty.commissioner_ids = commissioner_ids + induty.by_name = params[:by_name] + induty.in_time = Time.now.utc + if induty.save + dinning = DiningFacility.find(induty.dinning_id) + @induty= {"id"=>induty.id, + "dinning_id"=>induty.dinning_id, + "in_time"=>induty.in_time, + "out_time"=>induty.out_time, + "dinning_type"=>dinning.type } + respond_to do |format| + format.json { render json: @induty.to_json } + end + end + end + def induties_checkout + induty_id = params[:induty_id] + induty = InDuty.find(induty_id) + induty.out_time = Time.now.utc + induty.save + @induty =induty + respond_to do |format| + format.json { render json: @induty.to_json } + end + end + def induties_remove + induty_id = params[:induty_id] + induty = InDuty.find(induty_id) + induty.destroy + end + def get_current_booking + @current_booking =InDuty.select("in_duties.*,dining_facilities.type as dinning_type") + .joins(" LEFT JOIN dining_facilities on dining_facilities.id = in_duties.dinning_id").where('booking_id =? and out_time is null', params[:booking_id]).order(created_at: :asc); + respond_to do |format| + format.json { render json: @current_booking.to_json } + end + end + +end diff --git a/app/controllers/oqs/edit_controller.rb b/app/controllers/oqs/edit_controller.rb index acdef9f8..c6e130ec 100644 --- a/app/controllers/oqs/edit_controller.rb +++ b/app/controllers/oqs/edit_controller.rb @@ -38,22 +38,21 @@ class Oqs::EditController < BaseOqsController if ENV["SERVER_MODE"] != "cloud" #&& order.source == 'cashier' #no print in cloud server # print - assigned_item = AssignedOrderItem.find_by_instance_code_and_order_id(order_item.item_instance_code, order_item.order_id) + assigned_item = AssignedOrderItem.find_by_instance_code_and_order_id(order_item.item_instance_code, order_item.order_id) assigned_items = nil if !assigned_item.nil? assigned_items = AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'") - end + end if !assigned_items.nil? assigned_items.each do |assign_item| # order queue stations oqs = assign_item.order_queue_station - printer = PrintSetting.all - - unique_code="OrderItemPdf" + printer = PrintSetting.all + unique_code= "" if !printer.empty? printer.each do |printer_setting| - if printer_setting.unique_code == 'OrderItemPdf' + if printer_setting.unique_code == 'OrderItemPdf' unique_code="OrderItemPdf" elsif printer_setting.unique_code == 'OrderItemSlimPdf' unique_code="OrderItemSlimPdf" @@ -62,12 +61,14 @@ class Oqs::EditController < BaseOqsController elsif printer_setting.unique_code == 'OrderItemCustomisePdf' unique_code="OrderItemCustomisePdf" elsif printer_setting.unique_code == 'OrderSetItemCustomisePdf' - unique_code="OrderSetItemCustomisePdf" + unique_code="OrderSetItemCustomisePdf" elsif printer_setting.unique_code == 'OrderItemSlimCustomisePdf' unique_code="OrderItemSlimCustomisePdf" - end + elsif printer_setting.unique_code == 'OrderItemStarPdf' + unique_code="OrderItemStarPdf" + end end - end + end print_settings=PrintSetting.find_by_unique_code(unique_code) order_queue_printer= Printer::OrderQueuePrinter.new(print_settings) diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb index 8b767fa2..2ba8cd3e 100755 --- a/app/controllers/origami/home_controller.rb +++ b/app/controllers/origami/home_controller.rb @@ -17,6 +17,7 @@ class Origami::HomeController < BaseOrigamiController # origami table detail def show + @webview = check_mobile @tables = Table.unscoped.all.active.order('status desc') @@ -35,7 +36,7 @@ class Origami::HomeController < BaseOrigamiController @payment_methods = PaymentMethodSetting.all @dining_booking = @dining.bookings.active.where("DATE_FORMAT(created_at,'%Y-%m-%d') = '#{DateTime.now.strftime('%Y-%m-%d')}' OR DATE_FORMAT(created_at,'%Y-%m-%d') = '#{Date.today.prev_day}' ") #@dining_booking = @dining.bookings.active.where("created_at between '#{DateTime.now.utc - 12.hours}' and '#{DateTime.now.utc}'") - @order_items = Array.new + @order_items = Array.new @dining_booking.each do |booking| if booking.sale_id.nil? && booking.booking_status != 'moved' @order_items = Array.new @@ -144,6 +145,7 @@ class Origami::HomeController < BaseOrigamiController end end end + end def check_emp_access_code diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 59aaec3a..71a364e2 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -8,14 +8,14 @@ class Origami::PaymentsController < BaseOrigamiController sale_data = Sale.find_by_sale_id(sale_id) sale_items = SaleItem.get_all_sale_items(sale_id) member_info = nil - + # For Cashier by Zone bookings = Booking.where("sale_id='#{sale_id}'") - # if bookings.count > 1 + # if bookings.count > 1 # # for Multiple Booking # table = DiningFacility.find(bookings[0].dining_facility_id) # else - # table = DiningFacility.find(bookings[0].dining_facility_id) + # table = DiningFacility.find(bookings[0].dining_facility_id) # end shift = ShiftSale.current_open_shift(current_user.id) if !shift.nil? @@ -48,7 +48,7 @@ class Origami::PaymentsController < BaseOrigamiController if !receipt_bill_a5_pdf.empty? receipt_bill_a5_pdf.each do |receipt_bilA5| - if receipt_bilA5[0] == 'ReceiptBillA5Pdf' + if receipt_bilA5[0] == 'ReceiptBillA5Pdf' if receipt_bilA5[1] == '1' unique_code = "ReceiptBillA5Pdf" else @@ -59,7 +59,7 @@ class Origami::PaymentsController < BaseOrigamiController end #shop detail - ## shop_detail = Shop.first + ## shop_detail = Shop.first # customer= Customer.where('customer_id=' +.customer_id) customer = Customer.find(sale_data.customer_id) # rounding adjustment @@ -71,14 +71,14 @@ class Origami::PaymentsController < BaseOrigamiController if (a != 0.0 && b%2 != 0.0) || (a==0.0 && b%2 !=0) new_total = Sale.get_rounding_adjustment(sale_data.grand_total) rounding_adj = new_total-sale_data.grand_total - sale_data.update_attributes(grand_total: new_total,old_grand_total: sale_data.grand_total,rounding_adjustment:rounding_adj) + sale_data.update_attributes(grand_total: new_total,old_grand_total: sale_data.grand_total,rounding_adjustment:rounding_adj) end end #end rounding adjustment #record for sale audit action_by = current_user.name type = "FIRST_BILL" - + remark = "#{action_by} print out first bill for Receipt No #{sale_data.receipt_no}" sale_audit = SaleAudit.record_audit_sale(sale_id,remark,action_by,type ) # get member information @@ -102,12 +102,12 @@ class Origami::PaymentsController < BaseOrigamiController printer = Printer::ReceiptPrinter.new(print_settings) - filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_detail, "Frt",current_balance,nil,other_amount,nil,nil,nil) + filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_detail, "Frt",current_balance,nil,other_amount,nil,nil,nil) - result = { - :filepath => filename, - :printer_model => print_settings.brand_name, - :printer_url => print_settings.api_settings + result = { + :filepath => filename, + :printer_model => print_settings.brand_name, + :printer_url => print_settings.api_settings } # Mobile Print @@ -127,7 +127,7 @@ class Origami::PaymentsController < BaseOrigamiController if(Sale.exists?(sale_id)) saleObj = Sale.find(sale_id) sale_items = SaleItem.get_all_sale_items(sale_id) - #shop_detail = Shop.first + #shop_detail = Shop.first # rounding adjustment if !path.include? ("credit_payment") if shop_detail.is_rounding_adj @@ -138,12 +138,12 @@ class Origami::PaymentsController < BaseOrigamiController if (a != 0.0 && b%2 != 0.0) || (a==0.0 && b%2 !=0) new_total = Sale.get_rounding_adjustment(saleObj.grand_total) rounding_adj = new_total-saleObj.grand_total - saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) + saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) end end end #end rounding adjustment - + sale_payment = SalePayment.new if path.include? ("credit_payment") sale_payment.process_payment(saleObj, current_user, cash, "cash", nil, true) @@ -166,7 +166,7 @@ class Origami::PaymentsController < BaseOrigamiController table = DiningFacility.find(bookings.dining_facility_id) cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id) - + type = 'payment' from = getCloudDomain #get sub domain in cloud mode ActionCable.server.broadcast "order_channel",table: table,type:type,from:from @@ -193,11 +193,11 @@ class Origami::PaymentsController < BaseOrigamiController if !receipt_bill_a5_pdf.empty? receipt_bill_a5_pdf.each do |receipt_bilA5| - if receipt_bilA5[0] == 'ReceiptBillA5Pdf' + if receipt_bilA5[0] == 'ReceiptBillA5Pdf' if receipt_bilA5[1] == '1' unique_code = "ReceiptBillA5Pdf" # else - + end end end @@ -208,16 +208,16 @@ class Origami::PaymentsController < BaseOrigamiController # get member information rebate = MembershipSetting.find_by_rebate(1) credit_data = SalePayment.find_by_sale_id_and_payment_method(sale_id,'creditnote') - + if customer.membership_id != nil && rebate && credit_data.nil? member_info = Customer.get_member_account(customer) - + if member_info["status"] == true rebate_amount = Customer.get_membership_transactions(customer,saleObj.receipt_no) current_balance = SaleAudit.paymal_search(sale_id) end end - + #orders print out if params[:type] == "quick_service" booking = Booking.find_by_sale_id(sale_id) @@ -226,7 +226,7 @@ class Origami::PaymentsController < BaseOrigamiController else table_id = 0 end - + latest_order = booking.booking_orders.order("order_id DESC").limit(1).first() if !latest_order.nil? latest_order_no = latest_order.order_id @@ -241,13 +241,13 @@ class Origami::PaymentsController < BaseOrigamiController from = getCloudDomain #get sub domain in cloud mode ActionCable.server.broadcast "order_queue_station_channel",order: assign_order,from:from end - + end #for card sale data card_data = Array.new card_sale_trans_ref_no = Sale.getCardSaleTrans(sale_id) - if !card_sale_trans_ref_no.nil? + if !card_sale_trans_ref_no.nil? card_sale_trans_ref_no.each do |cash_sale_trans| card_res_date = cash_sale_trans.res_date.strftime("%Y-%m-%d").to_s card_res_time = cash_sale_trans.res_time.strftime("%H:%M").to_s @@ -259,7 +259,7 @@ class Origami::PaymentsController < BaseOrigamiController #card_balance amount for Paymal payment card_balance_amount = SaleAudit.getCardBalanceAmount(sale_id) - + # get printer info print_settings=PrintSetting.find_by_unique_code(unique_code) # Calculate Food and Beverage Total @@ -274,10 +274,12 @@ class Origami::PaymentsController < BaseOrigamiController #end end - end + end end def show + puts current_user + puts "Hello current_user" path = request.fullpath sale_id = params[:sale_id] @trans_flag = true @@ -287,11 +289,11 @@ class Origami::PaymentsController < BaseOrigamiController else @cashier_type = params[:type] end - + if path.include? ("credit_payment") @sale_payment = SalePayment.get_credit_amount_due_left(sale_id) end - + @member_discount = MembershipSetting.find_by_discount(1) @membership_rebate_balance=0 @@ -326,15 +328,15 @@ class Origami::PaymentsController < BaseOrigamiController lookup_changable_tax = Lookup.collection_of('changable_tax') if !lookup_changable_tax.empty? lookup_changable_tax.each do |changable_tax| - if changable_tax[0].downcase == "change" - if changable_tax[1] == '0' + if changable_tax[0].downcase == "change" + if changable_tax[1] == '0' @changable_tax = false end end end end - - @shop = shop_detail #show shop info + + @shop = shop_detail #show shop info @customer_lists = Customer.where("customer_id = 'CUS-000000000001' or customer_id = 'CUS-000000000002'") @@ -373,7 +375,7 @@ class Origami::PaymentsController < BaseOrigamiController if (a != 0.0 && b%2 != 0.0) || (a==0.0 && b%2 !=0) new_total = Sale.get_rounding_adjustment(saleObj.grand_total) @rounding_adj = new_total-saleObj.grand_total - saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:@rounding_adj) + saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:@rounding_adj) @sale_data.grand_total = new_total @sale_data.old_grand_total = saleObj.grand_total @sale_data.rounding_adjustment = @rounding_adj @@ -418,11 +420,11 @@ class Origami::PaymentsController < BaseOrigamiController end end end - end + end #end customer amount - #paymal payment + #paymal payment @sale_data.bookings.each do |sbk| if sbk.dining_facility_id.to_i >0 @@ -444,13 +446,13 @@ class Origami::PaymentsController < BaseOrigamiController @sale_payment_data = SalePayment.get_sale_payments(@sale_data) end @sale_payment_data.each do |spay| - if spay.payment_method == "cash" + if spay.payment_method == "cash" @cash += spay.payment_amount end - if spay.payment_method !="creditnote" + if spay.payment_method !="creditnote" @other_payment += spay.payment_amount end - + if spay.payment_method == "mpu" @other += spay.payment_amount elsif spay.payment_method == "paypar" @@ -485,7 +487,7 @@ class Origami::PaymentsController < BaseOrigamiController member_info = nil latest_order_no = nil saleObj = Sale.find(sale_id) - + # For Cashier by Zone bookings = Booking.where("sale_id='#{sale_id}'") @@ -494,11 +496,11 @@ class Origami::PaymentsController < BaseOrigamiController if !latest_order.nil? latest_order_no = latest_order.order_id end - # if bookings.count > 1 + # if bookings.count > 1 # # for Multiple Booking # table = DiningFacility.find(bookings[0].dining_facility_id) # else - # table = DiningFacility.find(bookings[0].dining_facility_id) + # table = DiningFacility.find(bookings[0].dining_facility_id) # end shift = ShiftSale.current_open_shift(current_user.id) if !shift.nil? @@ -512,14 +514,14 @@ class Origami::PaymentsController < BaseOrigamiController shift = ShiftSale.find(saleObj.shift_sale_id) cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) end - end + end # if ENV["SERVER_MODE"] != "cloud" #no print in cloud server receipt_bill_a5_pdf = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf unique_code = "ReceiptBillPdf" if !receipt_bill_a5_pdf.empty? receipt_bill_a5_pdf.each do |receipt_bilA5| - if receipt_bilA5[0] == 'ReceiptBillA5Pdf' + if receipt_bilA5[0] == 'ReceiptBillA5Pdf' if receipt_bilA5[1] == '1' unique_code = "ReceiptBillA5Pdf" else @@ -531,7 +533,7 @@ class Origami::PaymentsController < BaseOrigamiController customer= Customer.find(saleObj.customer_id) #shop detail - #shop_detail = Shop.first + #shop_detail = Shop.first # get member information rebate = MembershipSetting.find_by_rebate(1) if customer.membership_id != nil && rebate @@ -543,7 +545,7 @@ class Origami::PaymentsController < BaseOrigamiController #for card sale data card_data = Array.new card_sale_trans_ref_no = Sale.getCardSaleTrans(sale_id) - if !card_sale_trans_ref_no.nil? + if !card_sale_trans_ref_no.nil? card_sale_trans_ref_no.each do |cash_sale_trans| card_res_date = cash_sale_trans.res_date.strftime("%Y-%m-%d").to_s card_res_time = cash_sale_trans.res_time.strftime("%H:%M").to_s @@ -566,20 +568,20 @@ class Origami::PaymentsController < BaseOrigamiController printer = Printer::ReceiptPrinter.new(print_settings) filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings,cashier_terminal,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_detail, "Re-print",current_balance,card_data,other_amount,latest_order_no,card_balance_amount,nil) - - result = { + + result = { :status => true, - :filepath => filename, - :printer_model => print_settings.brand_name, - :printer_url => print_settings.api_settings + :filepath => filename, + :printer_model => print_settings.brand_name, + :printer_url => print_settings.api_settings } - + # Mobile Print render :json => result.to_json # end end - def foc + def foc cash = params[:cash] sale_id = params[:sale_id] sub_total = params[:sub_total] @@ -598,7 +600,7 @@ class Origami::PaymentsController < BaseOrigamiController saleObj.update_attributes(grand_total: 0, rounding_adjustment: 0, amount_received: 0, amount_changed: 0) saleObj.compute_by_sale_items(sale_id, saleObj.sale_items,0,order_source) end - + saleObj.update_attributes(grand_total: 0, rounding_adjustment: 0, amount_received: 0, amount_changed: 0) sale_payment = SalePayment.new @@ -612,7 +614,7 @@ class Origami::PaymentsController < BaseOrigamiController ActionCable.server.broadcast "order_channel",table: table,type:type,from:from end - + # For Cashier by Zone bookings = Booking.where("sale_id='#{sale_id}'") @@ -629,18 +631,31 @@ class Origami::PaymentsController < BaseOrigamiController shift = ShiftSale.find(saleObj.shift_sale_id) cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) end - end - + end + # Re-call Sale Data saleObj = Sale.find(sale_id) # if ENV["SERVER_MODE"] != "cloud" #no print in cloud server - unique_code = "ReceiptBillPdf" + # unique_code = "ReceiptBillPdf" customer= Customer.find(saleObj.customer_id) - - #shop detail - #shop_detail = Shop.first + #shop detail + #shop_detail = Shop.first + printer = PrintSetting.all + + unique_code="ReceiptBillPdf" + if !printer.empty? + printer.each do |printer_setting| + if printer_setting.unique_code == 'ReceiptBillPdf' + unique_code="ReceiptBillPdf" + elsif printer_setting.unique_code == 'ReceiptBillA5Pdf' + unique_code="ReceiptBillA5Pdf" + elsif printer_setting.unique_code == 'ReceiptBillStarPdf' + unique_code="ReceiptBillStarPdf" + end + end + end # get printer info print_settings=PrintSetting.find_by_unique_code(unique_code) # Calculate Food and Beverage Total @@ -652,11 +667,11 @@ class Origami::PaymentsController < BaseOrigamiController printer = Printer::ReceiptPrinter.new(print_settings) filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_detail, "FOC",nil,nil,other_amount,nil,nil,nil) - result = { + result = { :status => true, - :filepath => filename, - :printer_model => print_settings.brand_name, - :printer_url => print_settings.api_settings + :filepath => filename, + :printer_model => print_settings.brand_name, + :printer_url => print_settings.api_settings } # Mobile Print @@ -669,26 +684,26 @@ class Origami::PaymentsController < BaseOrigamiController else table_id = 0 end - + booking.booking_orders.each do |order| Order.pay_process_order_queue(order.order_id,table_id) end end # end - end + end end def rounding_adj saleObj = Sale.find(params[:sale_id]) @shop = shop_detail - + if @shop.is_rounding_adj a = saleObj.grand_total % 25 # Modulus - b = saleObj.grand_total / 25 # Division + b = saleObj.grand_total / 25 # Division #not calculate rounding if modulus is 0 and division is even #calculate rounding if modulus is zero or not zero and division are not even - if (a != 0.0 && b%2 != 0.0) || (a==0.0 && b%2 !=0) + if (a != 0.0 && b%2 != 0.0) || (a==0.0 && b%2 !=0) new_total = Sale.get_rounding_adjustment(saleObj.grand_total) rounding_adj = new_total-saleObj.grand_total saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) @@ -697,12 +712,12 @@ class Origami::PaymentsController < BaseOrigamiController end #print function for receipt - def print + def print filename = params[:filename] receipt_no = params[:receipt_no] printer_name = params[:printer_name] cashier_type = params[:type] - + if cashier_type.strip.downcase == "doemal_order" unique_code = "ReceiptBillOrderPdf" else @@ -720,7 +735,7 @@ class Origami::PaymentsController < BaseOrigamiController end if !receipt_bill_a5_pdf.empty? receipt_bill_a5_pdf.each do |receipt_bilA5| - if receipt_bilA5[0] == 'ReceiptBillA5Pdf' + if receipt_bilA5[0] == 'ReceiptBillA5Pdf' if receipt_bilA5[1] == '1' unique_code = "ReceiptBillA5Pdf" # else @@ -734,12 +749,12 @@ class Origami::PaymentsController < BaseOrigamiController print_settings=PrintSetting.find_by_unique_code(unique_code) printer = Printer::ReceiptPrinter.new(print_settings) printer.print_receipt_pdf(filename,receipt_no,print_settings.print_copies,printer_name) - - result = { + + result = { :status => true, - :filepath => filename, - :printer_model => print_settings.brand_name, - :printer_url => print_settings.api_settings + :filepath => filename, + :printer_model => print_settings.brand_name, + :printer_url => print_settings.api_settings } Rails.logger.debug "$$$$$$$$$ result ::" Rails.logger.debug result @@ -755,7 +770,7 @@ class Origami::PaymentsController < BaseOrigamiController tax_type = params[:tax_type] sale = Sale.find(sale_id) sale.compute_by_sale_items(sale.sale_id, sale.sale_items, sale.total_discount,nil,order_source,tax_type) - + render json: JSON.generate({:status => true}) end @@ -768,4 +783,4 @@ class Origami::PaymentsController < BaseOrigamiController return from end -end \ No newline at end of file +end diff --git a/app/controllers/origami/quick_service_controller.rb b/app/controllers/origami/quick_service_controller.rb index 98e61545..8fb6895c 100644 --- a/app/controllers/origami/quick_service_controller.rb +++ b/app/controllers/origami/quick_service_controller.rb @@ -6,7 +6,7 @@ class Origami::QuickServiceController < ApplicationController redirect_to root_path end end - + def index today = DateTime.now day = Date.today.wday @@ -14,7 +14,7 @@ class Origami::QuickServiceController < ApplicationController @menus = [] @menu = [] # else - # @menus = Menu.all + # @menus = Menu.all # @menu = MenuCategory.active.where("menu_id =#{@menus[0].id}").order('order_by asc') # end @zone = Zone.all @@ -28,20 +28,22 @@ class Origami::QuickServiceController < ApplicationController else @display_type = nil end - + #checked quick_service only - @quick_service_only = true - lookup_dine_in = Lookup.collection_of('dinein_cashier') + @quick_service_only = false + lookup_dine_in = Lookup.collection_of('quickservice_add_order') + puts 'lookup_dine_in!!!!' + puts lookup_dine_in if !lookup_dine_in.empty? lookup_dine_in.each do |dine_in| - if dine_in[0].downcase == "dineincashier" - if dine_in[1] == '1' - @quick_service_only = false + if dine_in[0].downcase == "quickserviceaddorder" + if dine_in[1] == '1' + @quick_service_only = true end end end end - + render "origami/addorders/detail" end @@ -53,7 +55,7 @@ class Origami::QuickServiceController < ApplicationController @menus = [] @menu = [] # else - # @menus = Menu.all + # @menus = Menu.all # @menu = MenuCategory.active.where("menu_id =#{@menus[0].id}").order('order_by asc') # end if(params[:id][0,3] == "BKI") @@ -65,7 +67,7 @@ class Origami::QuickServiceController < ApplicationController @table = DiningFacility.find(@table_id) @booking = @table.get_booking end - + @sale_id = params[:sale_id] if @booking @@ -96,7 +98,7 @@ class Origami::QuickServiceController < ApplicationController @cashier_type = "quick_service" items_arr = [] - JSON.parse(params[:order_items]).each { |i| + JSON.parse(params[:order_items]).each { |i| i["item_instance_code"] = i["item_instance_code"].downcase.to_s if i["item_instance_code"].include? "ext" is_extra_time = true @@ -169,7 +171,7 @@ class Origami::QuickServiceController < ApplicationController end @status, @booking = @order.generate - if(params[:sale_id][0,3] == "SAL") + if(params[:sale_id][0,3] == "SAL") if @status && @booking && @order.source == 'quick_service' if params[:sale_id] @sale = Sale.find(params[:sale_id]) @@ -180,17 +182,17 @@ class Origami::QuickServiceController < ApplicationController end update = Sale.add_to_existing_pending_invoice(@table_id,params[:sale_id],@booking) end - + result = {:status=> true, :data => @sale } render :json => result.to_json - end + end elsif (params[:sale_id][0,3] == "BKI") result = {:status=> true, :data => 'OK' } - render :json => result.to_json + render :json => result.to_json else result = {:status=> true, :data => nil } render :json => result.to_json - end + end end @@ -216,9 +218,9 @@ class Origami::QuickServiceController < ApplicationController return @sub_menu end end - + def get_all_product() - @product = Product.all + @product = Product.all end # render json for http status code diff --git a/app/controllers/origami/request_bills_controller.rb b/app/controllers/origami/request_bills_controller.rb index e1cec136..422e1372 100755 --- a/app/controllers/origami/request_bills_controller.rb +++ b/app/controllers/origami/request_bills_controller.rb @@ -28,7 +28,7 @@ class Origami::RequestBillsController < ApplicationController if check_booking.sale_id.nil? # Create Sale if it doesn't exist - @status, @sale_id = @sale.generate_invoice_from_booking(check_booking.id,current_login_employee, current_user, order.source) + @status, @sale_id = @sale.generate_invoice_from_booking(check_booking.id,current_login_employee, current_user, order.source, params[:current_checkin_induties_count]) @sale_data = Sale.find_by_sale_id(@sale_id) @sale_items = SaleItem.where("sale_id=?",@sale_id) @@ -38,6 +38,7 @@ class Origami::RequestBillsController < ApplicationController in_duties.each do |in_duty| induty = InDuty.find(in_duty.id) induty.sale_id = @sale_id + induty.out_time =Time.now.utc induty.save end end diff --git a/app/controllers/origami/split_bill_controller.rb b/app/controllers/origami/split_bill_controller.rb index c7311fd6..5d4cf991 100755 --- a/app/controllers/origami/split_bill_controller.rb +++ b/app/controllers/origami/split_bill_controller.rb @@ -120,7 +120,7 @@ class Origami::SplitBillController < BaseOrigamiController if booking if booking.sale_id.nil? sale = Sale.new - status, sale_id = sale.generate_invoice_from_booking(params[:booking_id], current_user, current_user, cashier_type) + status, sale_id = sale.generate_invoice_from_booking(params[:booking_id], current_user, current_user, cashier_type,params[:current_checkin_induties_count]) sale_data = Sale.find_by_sale_id(sale_id) else status = true @@ -333,7 +333,7 @@ class Origami::SplitBillController < BaseOrigamiController end sale = Sale.new - status, sale_id = sale.generate_invoice_from_booking(booking.booking_id, current_user, current_user, cashier_type) + status, sale_id = sale.generate_invoice_from_booking(booking.booking_id, current_user, current_user, cashier_type ,params[:current_checkin_induties_count]) end Promotion.promo_activate(sale) diff --git a/app/controllers/origami/void_controller.rb b/app/controllers/origami/void_controller.rb index e2c3250e..75bb7074 100755 --- a/app/controllers/origami/void_controller.rb +++ b/app/controllers/origami/void_controller.rb @@ -28,7 +28,7 @@ class Origami::VoidController < BaseOrigamiController shift.save end end - + sale.rounding_adjustment = 0.0 sale.payment_status = 'void' sale.sale_status = 'void' @@ -71,16 +71,16 @@ class Origami::VoidController < BaseOrigamiController table = nil end - # FOr Sale Audit + # FOr Sale Audit action_by = current_user.name if access_code != "null" && current_user.role == "cashier" action_by = Employee.find_by_emp_id(access_code).name end - + # remark = "Void Sale ID #{sale_id} | Receipt No #{sale.receipt_no} | Receipt No #{sale.receipt_no} | Table ->#{table.name}" sale_audit = SaleAudit.record_audit_for_edit(sale_id,current_user.name, action_by,remark,"SALEVOID" ) - # For Print + # For Print member_info = nil rebate_amount = nil @@ -88,7 +88,7 @@ class Origami::VoidController < BaseOrigamiController # For Cashier by Zone bookings = Booking.where("sale_id='#{sale_id}'") - if bookings.count > 1 + if bookings.count > 1 # for Multiple Booking if bookings[0].dining_facility_id.to_i>0 table = DiningFacility.find(bookings[0].dining_facility_id) @@ -102,12 +102,20 @@ class Origami::VoidController < BaseOrigamiController shift = ShiftSale.find(sale.shift_sale_id) cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) end - + # if ENV["SERVER_MODE"] != "cloud" #no print in cloud server - unique_code = "ReceiptBillPdf" + # get printer info + # print_settings = PrintSetting.find_by_unique_code('ReceiptBillPdf') # SaleItemsPdf + # + # if !print_settings.nil? + # unique_code = 'ReceiptBillPdf' + # elsif + # unique_code = 'ReceiptBillStarPdf' + # end + customer= Customer.find(sale.customer_id) - + #shop detail shop_details = current_shop # get member information @@ -119,34 +127,48 @@ class Origami::VoidController < BaseOrigamiController current_balance = 0 end + printer = PrintSetting.all + + unique_code="ReceiptBillPdf" + if !printer.empty? + printer.each do |printer_setting| + if printer_setting.unique_code == 'ReceiptBillPdf' + unique_code="ReceiptBillPdf" + elsif printer_setting.unique_code == 'ReceiptBillA5Pdf' + unique_code="ReceiptBillA5Pdf" + elsif printer_setting.unique_code == 'ReceiptBillStarPdf' + unique_code="ReceiptBillStarPdf" + end + end + end # get printer info print_settings=PrintSetting.find_by_unique_code(unique_code) # Calculate Food and Beverage Total item_price_by_accounts = SaleItem.calculate_price_by_accounts(sale.sale_items) discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(sale.sale_items) other_amount = SaleItem.calculate_other_charges(sale.sale_items) - printer = Printer::ReceiptPrinter.new(print_settings) - filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale.sale_items,sale,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "VOID",current_balance,nil,other_amount,nil,nil,nil) - result = { - :filepath => filename, - :printer_model => print_settings.brand_name, - :printer_url => print_settings.api_settings + printer = Printer::ReceiptPrinter.new(print_settings) + filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale.sale_items,sale,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "VOID",current_balance,nil,other_amount,nil,nil,nil) + result = { + :filepath => filename, + :printer_model => print_settings.brand_name, + :printer_url => print_settings.api_settings } # Mobile Print render :json => result.to_json # end - + #end print # update complete order items in oqs - SaleOrder.where("sale_id = '#{ sale_id }'").find_each do |sodr| + SaleOrder.where("sale_id = '#{ sale_id }'").find_each do |sodr| AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").find_each do |aoi| aoi.delivery_status = 1 aoi.save end end end - end - -end \ No newline at end of file + end + +end diff --git a/app/controllers/origami/waste_spoile_controller.rb b/app/controllers/origami/waste_spoile_controller.rb index 82c62a7e..92720467 100755 --- a/app/controllers/origami/waste_spoile_controller.rb +++ b/app/controllers/origami/waste_spoile_controller.rb @@ -18,7 +18,7 @@ class Origami::WasteSpoileController < BaseOrigamiController # sale.compute_by_sale_items(sale_id, sale.sale_items,0,order_source) # add to sale item with foc # sale_items = SaleItem.where("sale_id='#{ sale_id }' and status is null") - + sale.sale_items.each do|item| # SaleItem.update_existing_item(item.qty, item, sale_id, remark, item.unit_price, item.price) item.status = remark @@ -53,7 +53,7 @@ class Origami::WasteSpoileController < BaseOrigamiController table = nil end - # FOr Sale Audit + # FOr Sale Audit action_by = current_user.name if access_code != "null" && current_user.role == "cashier" action_by = Employee.find_by_emp_id(access_code).name @@ -61,7 +61,7 @@ class Origami::WasteSpoileController < BaseOrigamiController # remark = "Void Sale ID #{sale_id} | Receipt No #{sale.receipt_no} | Receipt No #{sale.receipt_no} | Table ->#{table.name}" sale_audit = SaleAudit.record_audit_for_edit(sale_id,current_user.name, action_by,remark,remark ) - # For Print + # For Print member_info = nil rebate_amount = nil @@ -69,7 +69,7 @@ class Origami::WasteSpoileController < BaseOrigamiController # For Cashier by Zone bookings = Booking.where("sale_id='#{sale_id}'") - if bookings.count > 1 + if bookings.count > 1 # for Multiple Booking if bookings[0].dining_facility_id.to_i>0 table = DiningFacility.find(bookings[0].dining_facility_id) @@ -83,12 +83,12 @@ class Origami::WasteSpoileController < BaseOrigamiController shift = ShiftSale.find(sale.shift_sale_id) cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) end - + # if ENV["SERVER_MODE"] != "cloud" #no print in cloud server - unique_code = "ReceiptBillPdf" + # unique_code = "ReceiptBillPdf" customer= Customer.find(sale.customer_id) - + #shop detail shop_details = current_shop # get member information @@ -100,34 +100,49 @@ class Origami::WasteSpoileController < BaseOrigamiController current_balance = 0 end + printer = PrintSetting.all + + unique_code="ReceiptBillPdf" + if !printer.empty? + printer.each do |printer_setting| + if printer_setting.unique_code == 'ReceiptBillPdf' + unique_code="ReceiptBillPdf" + elsif printer_setting.unique_code == 'ReceiptBillA5Pdf' + unique_code="ReceiptBillA5Pdf" + elsif printer_setting.unique_code == 'ReceiptBillStarPdf' + unique_code="ReceiptBillStarPdf" + end + end + end + # get printer info print_settings=PrintSetting.find_by_unique_code(unique_code) # Calculate Food and Beverage Total item_price_by_accounts = SaleItem.calculate_price_by_accounts(sale.sale_items) discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(sale.sale_items) other_amount = SaleItem.calculate_other_charges(sale.sale_items) - printer = Printer::ReceiptPrinter.new(print_settings) - filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale.sale_items,sale,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, remark,current_balance,nil,other_amount,nil,nil,nil) - result = { - :filepath => filename, - :printer_model => print_settings.brand_name, - :printer_url => print_settings.api_settings + printer = Printer::ReceiptPrinter.new(print_settings) + filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale.sale_items,sale,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, remark,current_balance,nil,other_amount,nil,nil,nil) + result = { + :filepath => filename, + :printer_model => print_settings.brand_name, + :printer_url => print_settings.api_settings } # Mobile Print render :json => result.to_json # end - + #end print # update complete order items in oqs - SaleOrder.where("sale_id = '#{ sale_id }'").find_each do |sodr| + SaleOrder.where("sale_id = '#{ sale_id }'").find_each do |sodr| AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").find_each do |aoi| aoi.delivery_status = 1 aoi.save end end end - end - -end \ No newline at end of file + end + +end diff --git a/app/controllers/reports/saleitem_controller.rb b/app/controllers/reports/saleitem_controller.rb index 5beb919e..b581eae8 100755 --- a/app/controllers/reports/saleitem_controller.rb +++ b/app/controllers/reports/saleitem_controller.rb @@ -130,6 +130,11 @@ class Reports::SaleitemController < BaseReportController print_settings = PrintSetting.find_by_unique_code('SaleItemsPdf') # SaleItemsPdf print_settings_star = PrintSetting.find_by_unique_code('SaleItemsStarPdf') + # if print_settings.nil? && print_settings_star.nil? + # @print_setting = PrintSetting.new(name: "SaleItemsPdf", unique_code: "SaleItemsPdf", template: "",font: "Zawgyi-One", header_font_size: "10", item_font_size: "8", printer_name: "", api_settings: "", brand_name: nil, printer_type: nil, page_width: "210", page_height: "1450", print_copies: "1", precision: "0", delimiter: "0", heading_space: "5" ) + # @print_setting.save + # end + if print_settings.nil? if !print_settings_star.nil? printer = Printer::CashierStationPrinter.new(print_settings_star) diff --git a/app/controllers/settings/commissioners_controller.rb b/app/controllers/settings/commissioners_controller.rb index fb8c1993..bbaa1ca8 100755 --- a/app/controllers/settings/commissioners_controller.rb +++ b/app/controllers/settings/commissioners_controller.rb @@ -18,6 +18,7 @@ class Settings::CommissionersController < ApplicationController def new @commissioner = Commissioner.new @employee = Employee.all.order('name asc') + end # GET /commissioners/1/edit @@ -35,14 +36,21 @@ class Settings::CommissionersController < ApplicationController unless @commissioner.resigned_date.nil? @commissioner.resigned_date = @commissioner.resigned_date.utc.getlocal.strftime('%Y-%b-%d') end - respond_to do |format| - if @commissioner.save - format.html {redirect_to settings_commissioners_path, notice: 'Commissioner was successfully created.'} - format.json {render :show, status: :created, location: @commissioner} - else - format.html {render :new} - format.json {render json: @commissioner.errors, status: :unprocessable_entity} + # puts params[:from_induty].length + if (params[:from_induty] != "true") + respond_to do |format| + if @commissioner.save + format.html {redirect_to settings_commissioners_path, notice: 'Commissioner was successfully created.'} + format.json {render :show, status: :created, location: @commissioner} + else + format.html {render :new} + format.json {render json: @commissioner.errors, status: :unprocessable_entity} + end end + else + @commissioner.save + flash[:notice] = 'Commissioner was successfully created.' + redirect_to induties_assign_in_duties_path(params[:booking_id]) end end diff --git a/app/helpers/induties/assign_in_duties_helper.rb b/app/helpers/induties/assign_in_duties_helper.rb new file mode 100644 index 00000000..bb55d3b4 --- /dev/null +++ b/app/helpers/induties/assign_in_duties_helper.rb @@ -0,0 +1,2 @@ +module Induties::AssignInDutiesHelper +end diff --git a/app/models/commissioner.rb b/app/models/commissioner.rb index 68573460..eb32f0bb 100755 --- a/app/models/commissioner.rb +++ b/app/models/commissioner.rb @@ -1,7 +1,7 @@ class Commissioner < ApplicationRecord belongs_to :employee, foreign_key: 'emp_id' belongs_to :commission, foreign_key: 'commission_id' - has_many :in_juties + has_many :in_duties has_many :product_commissions scope :active, -> { where(is_active: true) } diff --git a/app/models/dining_charge.rb b/app/models/dining_charge.rb index 2a351778..6f931bcf 100755 --- a/app/models/dining_charge.rb +++ b/app/models/dining_charge.rb @@ -20,7 +20,7 @@ class DiningCharge < ApplicationRecord block_count, price = DiningCharge.charges(dining_charges_obj, dining_minutes, 'day') end end - return block_count, price + return block_count, price else puts "<<<<<<<< NO" end @@ -34,7 +34,6 @@ class DiningCharge < ApplicationRecord charge_block = DiningCharge.convert_to_minutes(chargesObj.charge_block.utc.strftime('%H:%M')) result = dining_minutes / charge_block - rounding_time = DiningCharge.convert_to_minutes(chargesObj.time_rounding_block.utc.strftime('%H:%M')) if result.to_i < 1 # for dining minute is under charge_block diff --git a/app/models/induties.rb b/app/models/induties.rb new file mode 100644 index 00000000..a283db36 --- /dev/null +++ b/app/models/induties.rb @@ -0,0 +1,5 @@ +module Induties + def self.table_name_prefix + 'induties_' + end +end diff --git a/app/models/induties/assign_in_duty.rb b/app/models/induties/assign_in_duty.rb new file mode 100644 index 00000000..3d63dd05 --- /dev/null +++ b/app/models/induties/assign_in_duty.rb @@ -0,0 +1,2 @@ +class Induties::AssignInDuty < ApplicationRecord +end diff --git a/app/models/printer/order_queue_printer.rb b/app/models/printer/order_queue_printer.rb index d4122d59..ed14d884 100755 --- a/app/models/printer/order_queue_printer.rb +++ b/app/models/printer/order_queue_printer.rb @@ -11,11 +11,11 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker options = order_item[0].options # filename = "tmp/order_item_#{order_id}_#{order_item_id}" + ".pdf" - pdf = OrderItemPdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty) + # pdf = OrderItemPdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty) print_setting = PrintSetting.all # check for item not to show - + pdf = '' # if order_item[0].price != 0 if !print_setting.empty? print_setting.each do |print_settings| @@ -182,8 +182,6 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker # Print for orders in booking def print_booking_summary(print_settings,oqs, booking_id, print_status,before_updated_qty="") - puts 'PrintSetting!!!' - puts print_setting.print_copies # Must be one print if print_settings.print_copies == 0 print_settings.print_copies = 1 diff --git a/app/models/printer/printing_data.rb b/app/models/printer/printing_data.rb new file mode 100644 index 00000000..e69de29b diff --git a/app/models/printer/printservice.rb b/app/models/printer/printservice.rb new file mode 100644 index 00000000..e69de29b diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb index 83a8e6c6..04951a12 100755 --- a/app/models/printer/receipt_printer.rb +++ b/app/models/printer/receipt_printer.rb @@ -9,7 +9,7 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker if !printer.empty? printer.each do |printer_setting| - if printer_setting.unique_code == 'OrderItemPdf' + if printer_setting.unique_code == 'OrderItemPdf' pdf = OrderItemPdf.new elsif printer_setting.unique_code == 'OrderItemSlimPdf' pdf = OrderItemSlimPdf.new @@ -18,12 +18,12 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker elsif printer_setting.unique_code == 'OrderItemCustomisePdf' pdf = OrderItemCustomisePdf.new elsif printer_setting.unique_code == 'OrderSetItemCustomisePdf' - pdf = OrderSetItemCustomisePdf.new + pdf = OrderSetItemCustomisePdf.new elsif printer_setting.unique_code == 'OrderItemSlimCustomisePdf' pdf = OrderItemSlimCustomisePdf.new - end + end end - end + end pdf.render_file "tmp/order_item_queue_#{order_id}_#{order_item_id}" + ".pdf" #no print in cloud server if ENV["SERVER_MODE"] != "cloud" @@ -41,7 +41,7 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker if !printer.empty? printer.each do |printer_setting| - if printer_setting.unique_code == 'OrderSummaryPdf' + if printer_setting.unique_code == 'OrderSummaryPdf' pdf = OrderSummaryPdf.new elsif printer_setting.unique_code == 'OrderSummarySlimPdf' pdf = OrderSummarySlimPdf.new @@ -50,12 +50,12 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker elsif printer_setting.unique_code == 'OrderSummaryCustomisePdf' pdf = OrderSummaryCustomisePdf.new elsif printer_setting.unique_code == 'OrderSummarySetCustomisePdf' - pdf = OrderSummarySetCustomisePdf.new + pdf = OrderSummarySetCustomisePdf.new elsif printer_setting.unique_code == 'OrderSummarySlimCustomisePdf' pdf = OrderSummarySlimCustomisePdf.new - end + end end - end + end pdf.render_file filename #no print in cloud server if ENV["SERVER_MODE"] != "cloud" @@ -72,7 +72,7 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker pdf = OrderSummaryPdf.new if !printer.empty? printer.each do |printer_setting| - if printer_setting.unique_code == 'OrderSummaryPdf' + if printer_setting.unique_code == 'OrderSummaryPdf' pdf = OrderSummaryPdf.new elsif printer_setting.unique_code == 'OrderSummarySlimPdf' pdf = OrderSummarySlimPdf.new @@ -81,12 +81,12 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker elsif printer_setting.unique_code == 'OrderSummaryCustomisePdf' pdf = OrderSummaryCustomisePdf.new elsif printer_setting.unique_code == 'OrderSummarySetCustomisePdf' - pdf = OrderSummarySetCustomisePdf.new + pdf = OrderSummarySetCustomisePdf.new elsif printer_setting.unique_code == 'OrderSummarySlimCustomisePdf' pdf = OrderSummarySlimCustomisePdf.new - end + end end - end + end pdf.render_file filename #no print in cloud server if ENV["SERVER_MODE"] != "cloud" @@ -103,7 +103,7 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker pdf = OrderSummaryPdf.new if !printer.empty? printer.each do |printer_setting| - if printer_setting.unique_code == 'OrderSummaryPdf' + if printer_setting.unique_code == 'OrderSummaryPdf' pdf = OrderSummaryPdf.new elsif printer_setting.unique_code == 'OrderSummarySlimPdf' pdf = OrderSummarySlimPdf.new @@ -112,12 +112,12 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker elsif printer_setting.unique_code == 'OrderSummaryCustomisePdf' pdf = OrderSummaryCustomisePdf.new elsif printer_setting.unique_code == 'OrderSummarySetCustomisePdf' - pdf = OrderSummarySetCustomisePdf.new + pdf = OrderSummarySetCustomisePdf.new elsif printer_setting.unique_code == 'OrderSummarySlimCustomisePdf' pdf = OrderSummarySlimCustomisePdf.new - end + end end - end + end pdf.render_file filename #no print in cloud server if ENV["SERVER_MODE"] != "cloud" @@ -134,7 +134,7 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker pdf = OrderSummaryPdf.new if !printer.empty? printer.each do |printer_setting| - if printer_setting.unique_code == 'OrderSummaryPdf' + if printer_setting.unique_code == 'OrderSummaryPdf' pdf = OrderSummaryPdf.new elsif printer_setting.unique_code == 'OrderSummarySlimPdf' pdf = OrderSummarySlimPdf.new @@ -143,12 +143,12 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker elsif printer_setting.unique_code == 'OrderSummaryCustomisePdf' pdf = OrderSummaryCustomisePdf.new elsif printer_setting.unique_code == 'OrderSummarySetCustomisePdf' - pdf = OrderSummarySetCustomisePdf.new + pdf = OrderSummarySetCustomisePdf.new elsif printer_setting.unique_code == 'OrderSummarySlimCustomisePdf' pdf = OrderSummarySlimCustomisePdf.new - end + end end - end + end pdf.render_file filename #no print in cloud server if ENV["SERVER_MODE"] != "cloud" @@ -165,7 +165,7 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker pdf = OrderSummaryPdf.new if !printer.empty? printer.each do |printer_setting| - if printer_setting.unique_code == 'OrderSummaryPdf' + if printer_setting.unique_code == 'OrderSummaryPdf' pdf = OrderSummaryPdf.new elsif printer_setting.unique_code == 'OrderSummarySlimPdf' pdf = OrderSummarySlimPdf.new @@ -174,12 +174,12 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker elsif printer_setting.unique_code == 'OrderSummaryCustomisePdf' pdf = OrderSummaryCustomisePdf.new elsif printer_setting.unique_code == 'OrderSummarySetCustomisePdf' - pdf = OrderSummarySetCustomisePdf.new + pdf = OrderSummarySetCustomisePdf.new elsif printer_setting.unique_code == 'OrderSummarySlimCustomisePdf' pdf = OrderSummarySlimCustomisePdf.new - end + end end - end + end pdf.render_file filename #no print in cloud server if ENV["SERVER_MODE"] != "cloud" @@ -191,7 +191,7 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker def print_receipt_bill(printer_settings,cashier_terminal,sale_items,sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount=nil,shop_details, printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount,order_reservation) #Use CUPS service #Generate PDF - #Print + #Print if !printer_settings.nil? if !printer_settings.unique_code.strip.downcase.include? ("receiptbillorder") pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount) @@ -205,11 +205,11 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker end end end - + receipt_bill_a5_pdf = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf if !receipt_bill_a5_pdf.empty? receipt_bill_a5_pdf.each do |receipt_bilA5| - if receipt_bilA5[0] == 'ReceiptBillA5Pdf' + if receipt_bilA5[0] == 'ReceiptBillA5Pdf' if receipt_bilA5[1] == '1' pdf = ReceiptBillA5Pdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount) # else @@ -222,7 +222,7 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker #doemal online order pdf template pdf = ReceiptBillOrderPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount,order_reservation) end - + # print as print copies in printer setting count = printer_settings.print_copies diff --git a/app/models/sale.rb b/app/models/sale.rb index 3fcbe0d2..c7a0e9d6 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -26,7 +26,6 @@ class Sale < ApplicationRecord } SALE_STATUS_OUTSTANDING = "outstanding" SALE_STATUS_COMPLETED = "completed" - def self.sync_sale_records(sales) if !sales.nil? sales.each do |s| @@ -63,8 +62,7 @@ class Sale < ApplicationRecord puts '........ Sale data sync completed .......' end end - - def generate_invoice_from_booking(booking_id, requested_by, cashier, order_source = nil) + def generate_invoice_from_booking(booking_id, requested_by, cashier, order_source = nil, current_checkin_induties_count) booking = Booking.find(booking_id) status = false Rails.logger.debug "Booking -> " + booking.id.to_s @@ -93,9 +91,22 @@ class Sale < ApplicationRecord else dining_time = booking.checkin_at.strftime('%B %d, %H:%M %p').to_s + " - " + booking.checkout_at.strftime('%B %d, %H:%M %p').to_s end + later_time = booking.checkout_at + early_time = booking.checkin_at + distance_in_minutes = ((later_time - early_time)/60.0).round + basic_pay_amount =0 + name ="" + if current_checkin_induties_count != "0" + basic_pay = Commission.where('commission_type=?','Basic Pay') + basic_pay.each do |pay| + basic_pay_amount =pay.amount + name =pay.name + end + induties_pay_amount = (current_checkin_induties_count.to_i * (distance_in_minutes / 60.0).to_f * basic_pay_amount).to_i + create_saleitem_indutycharges(charges, current_checkin_induties_count.to_i, induties_pay_amount, booking.dining_facility.name, dining_time, order_source, basic_pay_amount) + end create_saleitem_diningcharges(charges, block_count, diningprice, booking.dining_facility.name, dining_time, order_source) end - return status, sale_id end end @@ -367,7 +378,25 @@ class Sale < ApplicationRecord sale = Sale.find(self.id) self.compute_by_sale_items(self.id, sale.sale_items, self.total_discount, nil, order_source) end - + def create_saleitem_indutycharges(chargeObj, current_checkin_induties_count, induties_pay_amount, dining_name, dining_time, order_source = nil, basic_pay_amount) + sale_item = SaleItem.new + sale_item.menu_category_code = "IndutyCharge" + sale_item.menu_category_name = "Induty Charge" + sale_item.product_code = "" + sale_item.product_name ='Vocalist' + " ( " + dining_time.to_s + " )" + sale_item.account_id = 0 + sale_item.product_alt_name = "-" + sale_item.qty = current_checkin_induties_count + sale_item.unit_price = basic_pay_amount + sale_item.taxable_price = induties_pay_amount + sale_item.is_taxable = chargeObj.taxable + sale_item.sale_id = self.id + sale_item.price = induties_pay_amount + sale_item.save + # Re-calc + sale = Sale.find(self.id) + self.compute_by_sale_items(self.id, sale.sale_items, self.total_discount, nil, order_source) + end def update_item (item) #save sale_audit diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 65c3f79d..6031282d 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -57,7 +57,7 @@ class SalePayment < ApplicationRecord #route to payment type case payment_method when "cash" - payment_status = cash_payment(payment_for) + payment_status ,outstanding_amount ,balance_amount = cash_payment(payment_for) when "creditnote" if !self.sale.customer_id.nil? payment_status = creditnote_payment(self.customer_id) @@ -127,7 +127,7 @@ class SalePayment < ApplicationRecord # end end - return true, self.save,membership_data + return true, self.save,membership_data, outstanding_amount ,balance_amount else #record an payment in sale-audit remark = "Payment failed - Grand Total [#{invoice.grand_total}] | Due [#{amount_due}] | Paid [#{invoice.amount_received}]" @@ -357,7 +357,16 @@ class SalePayment < ApplicationRecord if !payment_for sale_update_payment_status(self.received_amount,status) end - return payment_status + balance_amount =0.0 + outstanding_amount =0.0 + if self.sale.grand_total.to_f > self.received_amount.to_f + balance_amount = self.sale.grand_total.to_f - self.received_amount.to_f + outstanding_amount = 0.0 + else + balance_amount = 0.0 + outstanding_amount = self.received_amount.to_f - self.sale.grand_total.to_f + end + return payment_status , outstanding_amount.to_i, balance_amount.to_i end def foc_payment diff --git a/app/pdf/move_table_pdf.rb b/app/pdf/move_table_pdf.rb index 48bead98..5d44b393 100644 --- a/app/pdf/move_table_pdf.rb +++ b/app/pdf/move_table_pdf.rb @@ -1,21 +1,22 @@ class MoveTablePdf < Prawn::Document include ActionView::Helpers::NumberHelper - attr_accessor :label_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 + attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :margin_top, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width def initialize(printer_settings,to,from,shop_detail,date,type,moved_by,order_items) self.page_width = printer_settings.page_width self.page_height = printer_settings.page_height self.header_font_size = printer_settings.header_font_size.to_i self.item_font_size = printer_settings.item_font_size.to_i self.margin = 0 + self.margin_top = 7 self.price_width = 40 # No Need for item self.qty_width = 40 self.total_width = 40 # No Need for item self.item_width = self.page_width - (self.qty_width - self.margin) - self.item_height = 15 + self.item_height = 15 self.item_description_width = self.page_width - (self.price_width + self.qty_width + self.total_width) - self.label_width=90 + self.label_width=90 - super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) + super(:margin => [self.margin_top, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) # db font setup if printer_settings.font != "" @@ -85,7 +86,7 @@ class MoveTablePdf < Prawn::Document move_down 5 order_items.each do|odi| - # check for item not to show + # check for item not to show # if odi.price != 0 y_position = cursor @@ -103,15 +104,15 @@ class MoveTablePdf < Prawn::Document bounding_box([0,y_position], :width => self.item_width) do text "#{odi.item_code} - #{odi.item_name}", :size => self.item_font_size,:align => :left end - + if !(odi.alt_name).empty? move_down 4 # font("public/fonts/NotoSansCJKtc-Regular.ttf") do text "(#{odi.alt_name})", :size => self.item_font_size,:align => :left, :inline_format => true # end end - - end + + end end end diff --git a/app/pdf/order_item_pdf.rb b/app/pdf/order_item_pdf.rb index f872d608..946a0adf 100755 --- a/app/pdf/order_item_pdf.rb +++ b/app/pdf/order_item_pdf.rb @@ -1,22 +1,23 @@ class OrderItemPdf < Prawn::Document include ActionView::Helpers::NumberHelper - attr_accessor :label_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 - + attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :margin_top, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width + def initialize(print_settings,order_item, print_status, options, alt_name, before_updated_qty) self.page_width = print_settings.page_width self.page_height = print_settings.page_height self.header_font_size = print_settings.header_font_size.to_i self.item_font_size = print_settings.item_font_size.to_i self.margin = 0 + self.margin_top = 7 self.price_width = 40 # No Need for item self.qty_width = 40 self.total_width = 40 # No Need for item self.item_width = self.page_width - (self.qty_width - self.margin) - self.item_height = 15 + self.item_height = 15 self.item_description_width = self.page_width - (self.price_width + self.qty_width + self.total_width) - self.label_width=90 + self.label_width=90 - super(:margin => [print_settings.heading_space, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) + super(:margin => self.margin_top, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) # super(:margin => [10, 5, 30, 5], :page_size => [200,400]) # db font setup @@ -29,17 +30,17 @@ class OrderItemPdf < Prawn::Document }) font "#{print_settings.font}" - fallback_fonts ["Courier", "Helvetica", "Times-Roman"] + fallback_fonts ["Courier", "Helvetica", "Times-Roman"] end # font "public/fonts/Zawgyi-One.ttf" - # font "public/fonts/padauk.ttf" - #font "public/fonts/Chinese.ttf" + # font "public/fonts/padauk.ttf" + #font "public/fonts/Chinese.ttf" if !order_item.dining.nil? text "#{ order_item.type + '-' + order_item.dining + print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20 else text "#{ print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20 end - + stroke_horizontal_rule move_down 3 @@ -51,31 +52,31 @@ class OrderItemPdf < Prawn::Document end # Write Order Information to PDF - def order_info(order_no, order_by, order_at) + def order_info(order_no, order_by, order_at) #booking ID booking_id = get_booking_id(order_no) y_position = cursor bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do - text "Booking: #{booking_id}", :size => self.item_font_size,:align => :left + text "Booking: #{booking_id}", :size => self.item_font_size,:align => :left end move_down 2 y_position = cursor bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do - text "OrderNo: #{order_no}", :size => self.item_font_size,:align => :left + text "OrderNo: #{order_no}", :size => self.item_font_size,:align => :left end move_down 2 y_position = cursor bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do - text "OrderBy: #{order_by} ", :size => self.item_font_size,:align => :left + text "OrderBy: #{order_by} ", :size => self.item_font_size,:align => :left end move_down 2 y_position = cursor bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do - text "Date: #{order_at.utc.getlocal.strftime("%Y-%m-%d %I:%M %p")}", :size => self.item_font_size,:align => :left + text "Date: #{order_at.utc.getlocal.strftime("%Y-%m-%d %I:%M %p")}", :size => self.item_font_size,:align => :left end stroke_horizontal_rule @@ -87,7 +88,7 @@ class OrderItemPdf < Prawn::Document def order_items(order_item, options, alt_name, precision, before_updated_qty) y_position = cursor - #Add Order Item + #Add Order Item add_order_items(order_item, options, alt_name, precision) dash(1, :space => 1, :phase => 1) @@ -155,7 +156,7 @@ class OrderItemPdf < Prawn::Document booking = Order.joins(" JOIN booking_orders bo ON bo.order_id = orders.order_id") .joins(" JOIN bookings b ON b.booking_id=bo.booking_id") .where("orders.order_id='#{order_no}'") - .first() + .first() return booking.booking_id end diff --git a/app/pdf/order_item_star_pdf.rb b/app/pdf/order_item_star_pdf.rb index 2aaf01ac..711fb81e 100644 --- a/app/pdf/order_item_star_pdf.rb +++ b/app/pdf/order_item_star_pdf.rb @@ -1,22 +1,23 @@ class OrderItemStarPdf < Prawn::Document include ActionView::Helpers::NumberHelper - attr_accessor :label_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 - + attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :margin_top, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width + def initialize(print_settings,order_item, print_status, options, alt_name, before_updated_qty) self.page_width = print_settings.page_width self.page_height = print_settings.page_height self.header_font_size = print_settings.header_font_size.to_i self.item_font_size = print_settings.item_font_size.to_i self.margin = 0 + self.margin_top = 7 self.price_width = 40 # No Need for item self.qty_width = 38 self.total_width = 40 # No Need for item self.item_width = self.page_width - (self.qty_width - self.margin) - self.item_height = 15 + self.item_height = 15 self.item_description_width = self.page_width - (self.price_width + self.qty_width + self.total_width) - self.label_width=90 + self.label_width=90 - super(:margin => [print_settings.heading_space, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) + super(:margin => [self.margin_top, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) # super(:margin => [10, 5, 30, 5], :page_size => [200,400]) # db font setup @@ -29,17 +30,17 @@ class OrderItemStarPdf < Prawn::Document }) font "#{print_settings.font}" - fallback_fonts ["Courier", "Helvetica", "Times-Roman"] + fallback_fonts ["Courier", "Helvetica", "Times-Roman"] end # font "public/fonts/Zawgyi-One.ttf" - # font "public/fonts/padauk.ttf" - #font "public/fonts/Chinese.ttf" + # font "public/fonts/padauk.ttf" + #font "public/fonts/Chinese.ttf" if !order_item.dining.nil? text "#{ order_item.type + '-' + order_item.dining + print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20 else text "#{ print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20 end - + stroke_horizontal_rule move_down 3 @@ -51,31 +52,31 @@ class OrderItemStarPdf < Prawn::Document end # Write Order Information to PDF - def order_info(order_no, order_by, order_at) + def order_info(order_no, order_by, order_at) #booking ID booking_id = get_booking_id(order_no) y_position = cursor bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do - text "Booking: #{booking_id}", :size => self.item_font_size,:align => :left + text "Booking: #{booking_id}", :size => self.item_font_size,:align => :left end move_down 2 y_position = cursor bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do - text "OrderNo: #{order_no}", :size => self.item_font_size,:align => :left + text "OrderNo: #{order_no}", :size => self.item_font_size,:align => :left end move_down 2 y_position = cursor bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do - text "OrderBy: #{order_by} ", :size => self.item_font_size,:align => :left + text "OrderBy: #{order_by} ", :size => self.item_font_size,:align => :left end move_down 2 y_position = cursor bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do - text "Date: #{order_at.utc.getlocal.strftime("%Y-%m-%d %I:%M %p")}", :size => self.item_font_size,:align => :left + text "Date: #{order_at.utc.getlocal.strftime("%Y-%m-%d %I:%M %p")}", :size => self.item_font_size,:align => :left end stroke_horizontal_rule @@ -87,7 +88,7 @@ class OrderItemStarPdf < Prawn::Document def order_items(order_item, options, alt_name, precision, before_updated_qty) y_position = cursor - #Add Order Item + #Add Order Item add_order_items(order_item, options, alt_name, precision) dash(1, :space => 1, :phase => 1) @@ -155,7 +156,7 @@ class OrderItemStarPdf < Prawn::Document booking = Order.joins(" JOIN booking_orders bo ON bo.order_id = orders.order_id") .joins(" JOIN bookings b ON b.booking_id=bo.booking_id") .where("orders.order_id='#{order_no}'") - .first() + .first() return booking.booking_id end diff --git a/app/pdf/receipt_bill_star_pdf.rb b/app/pdf/receipt_bill_star_pdf.rb index c11603eb..447e0a2e 100644 --- a/app/pdf/receipt_bill_star_pdf.rb +++ b/app/pdf/receipt_bill_star_pdf.rb @@ -1,7 +1,7 @@ class ReceiptBillStarPdf < Prawn::Document include ActionView::Helpers::NumberHelper - attr_accessor :label_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, :description_width, :price_num_width, :line_move + attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :margin_top, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width, :description_width, :price_num_width, :line_move def initialize(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount = nil,shop_details, printed_status,current_balance,card_data,other_charges_amount,latest_order_no,card_balance_amount) self.page_width = printer_settings.page_width @@ -9,6 +9,7 @@ class ReceiptBillStarPdf < Prawn::Document self.header_font_size = printer_settings.header_font_size.to_i self.item_font_size = printer_settings.item_font_size.to_i self.margin = 0 + self.margin_top = 10 self.price_width = 60 self.qty_width = 20 self.total_width = 40 @@ -25,7 +26,7 @@ class ReceiptBillStarPdf < Prawn::Document # @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.page_width, self.page_height]) + super(:margin => [self.margin_top, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) #precision checked if printer_settings.precision.to_i > 2 diff --git a/app/views/api/payment/mobilepayment/cash.json.jbuilder b/app/views/api/payment/mobilepayment/cash.json.jbuilder new file mode 100644 index 00000000..725395e6 --- /dev/null +++ b/app/views/api/payment/mobilepayment/cash.json.jbuilder @@ -0,0 +1,2 @@ +json.set! :status, @out[0] +json.set! :data, @out[1] diff --git a/app/views/crm/customers/index.html.erb b/app/views/crm/customers/index.html.erb index 3948d86f..55295c9e 100644 --- a/app/views/crm/customers/index.html.erb +++ b/app/views/crm/customers/index.html.erb @@ -126,8 +126,8 @@ <% if crm_customer.membership_id.nil? && !crm_customer.membership_type.nil? && !crm_customer.membership_type =="" && !crm_customer.paypar_account_no =="" && !crm_customer.paypar_account_no.nil? %> <%= link_to t("views.btn.sync"), crm_customer_sync_path(crm_customer), :class => "btn btn-md bg-green waves-effect" %> <% end %> - <% if @customer_update_phone_email %> - <%= link_to t("views.btn.update"), crm_customer_update_phone_email_path(crm_customer), :class => "btn btn-md bg-green waves-effect" %> + <% if @customer_update_phone_email_membertype %> + <%= link_to t("views.btn.update"), crm_customer_update_phone_email_member_type_path(crm_customer), :class => "btn btn-md bg-green waves-effect" %> <% end %> <%= link_to t("views.btn.show"), crm_customer_path(crm_customer), :class => "btn btn-md bg-blue waves-effect" %> diff --git a/app/views/induties/assign_in_duties/_form.html.erb b/app/views/induties/assign_in_duties/_form.html.erb new file mode 100644 index 00000000..513d93a4 --- /dev/null +++ b/app/views/induties/assign_in_duties/_form.html.erb @@ -0,0 +1,10 @@ +<%= simple_form_for(@induties_assign_in_duty) do |f| %> + <%= f.error_notification %> + +
+
+ +
+ <%= f.button :submit %> +
+<% end %> diff --git a/app/views/induties/assign_in_duties/_induties_assign_in_duty.json.jbuilder b/app/views/induties/assign_in_duties/_induties_assign_in_duty.json.jbuilder new file mode 100644 index 00000000..4ad02170 --- /dev/null +++ b/app/views/induties/assign_in_duties/_induties_assign_in_duty.json.jbuilder @@ -0,0 +1,2 @@ +json.extract! induties_assign_in_duty, :id, :created_at, :updated_at +json.url induties_assign_in_duty_url(induties_assign_in_duty, format: :json) diff --git a/app/views/induties/assign_in_duties/edit.html.erb b/app/views/induties/assign_in_duties/edit.html.erb new file mode 100644 index 00000000..63e24a52 --- /dev/null +++ b/app/views/induties/assign_in_duties/edit.html.erb @@ -0,0 +1,6 @@ +

Editing Induties Assign In Duty

+ +<%= render 'form', induties_assign_in_duty: @induties_assign_in_duty %> + +<%= link_to 'Show', @induties_assign_in_duty %> | +<%= link_to 'Back', induties_assign_in_duties_path %> diff --git a/app/views/induties/assign_in_duties/index.html.erb b/app/views/induties/assign_in_duties/index.html.erb new file mode 100644 index 00000000..fc30fed5 --- /dev/null +++ b/app/views/induties/assign_in_duties/index.html.erb @@ -0,0 +1,345 @@ + +
+
+
+
+ <% @commissioners.each do |com| %> +
+
);background-repeat: no-repeat; background-size: cover;"> +
+
<%=com["name"] %>
+ <% if com["check_in_count"] >0%> +
A :<%=com["check_in_count"] %>
+ <% end %> + +
+
+ +
+
+
+ <% end %> +
+
+
+ add +
+
+
+
+
+
+
+
+ +
+
+
+
+ + +
+ + + + + + + + + + +
DiningCheck In AtAction
+
+
+
+ +
+
+
+
+
+
+
+ + +
+
+
+
+ <%= simple_form_for 'zone', :method => :get do |f| %> + <%= f.collection_select :dinning_id, Room.all, :id, :name, {prompt: 'Select Room'},:class=>'form-control',:required => true %> + <%end %> +
+
+
+
+ <%= simple_form_for 'zone_t', :method => :get do |f| %> + <%= f.collection_select :dinning_id, Table.all, :id, :name, {prompt: 'Select Table'},:class=>'form-control',:required => true %> + <%end %> +
+
+
+
+
+
+ <%= simple_form_for 'save_induties', :url => induties_induties_create_path, :method => :post do |f| %> + <%= f.check_box :by_name,:class=>'form-control'%> + + <% end %> +
+
+ +
+
+ +
+ + diff --git a/app/views/induties/assign_in_duties/index.json.jbuilder b/app/views/induties/assign_in_duties/index.json.jbuilder new file mode 100644 index 00000000..057eb2db --- /dev/null +++ b/app/views/induties/assign_in_duties/index.json.jbuilder @@ -0,0 +1 @@ +json.array! @induties_assign_in_duties, partial: 'induties_assign_in_duties/induties_assign_in_duty', as: :induties_assign_in_duty diff --git a/app/views/induties/assign_in_duties/new.html.erb b/app/views/induties/assign_in_duties/new.html.erb new file mode 100644 index 00000000..512f3038 --- /dev/null +++ b/app/views/induties/assign_in_duties/new.html.erb @@ -0,0 +1,5 @@ +

New Induties Assign In Duty

+ +<%= render 'form', induties_assign_in_duty: @induties_assign_in_duty %> + +<%= link_to 'Back', induties_assign_in_duties_path %> diff --git a/app/views/induties/assign_in_duties/show.html.erb b/app/views/induties/assign_in_duties/show.html.erb new file mode 100644 index 00000000..82a22e22 --- /dev/null +++ b/app/views/induties/assign_in_duties/show.html.erb @@ -0,0 +1,4 @@ +

<%= notice %>

+ +<%= link_to 'Edit', edit_induties_assign_in_duty_path(@induties_assign_in_duty) %> | +<%= link_to 'Back', induties_assign_in_duties_path %> diff --git a/app/views/induties/assign_in_duties/show.json.jbuilder b/app/views/induties/assign_in_duties/show.json.jbuilder new file mode 100644 index 00000000..0367be23 --- /dev/null +++ b/app/views/induties/assign_in_duties/show.json.jbuilder @@ -0,0 +1 @@ +json.partial! "induties_assign_in_duties/induties_assign_in_duty", induties_assign_in_duty: @induties_assign_in_duty diff --git a/app/views/origami/addorders/detail.html.erb b/app/views/origami/addorders/detail.html.erb index 50f25902..be8b824f 100644 --- a/app/views/origami/addorders/detail.html.erb +++ b/app/views/origami/addorders/detail.html.erb @@ -1,10 +1,9 @@ <%= stylesheet_link_tag 'addorder', media: 'all', 'data-turbolinks-track': 'reload' %> -<%= javascript_include_tag 'addorder', 'data-turbolinks-track': 'reload' %> +<%= javascript_include_tag 'addorder', 'data-turbolinks-track': 'reload' %> <% type = request.path_info.include?('quick_service') || request.path_info.include?('food_court')%> <% modify_order = request.path_info.include?('modify_order')%> -