'; ;
+ }else{
+ row = '
'
- +'
'
- +'
'
- +'
'+ menu_items[field].name +'
'
- +"'
- +'
'
- +"
"
-
- // +"
"
- // +"
"
- // +"
"
-
- +''
- +'
'
- +'
'; ;
$('.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 %>
+
+
+
+
+
+
+
+ ×
+
+ Successed!
+
+
+
+
+
+
+
+
+ Dining
+ Check In At
+ Action
+
+
+
+
+
+
+
+
+
+
Create In Duty
+
+
+
+
+
+
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')%>
-