diff --git a/app/controllers/origami/others_payments_controller.rb b/app/controllers/origami/others_payments_controller.rb index ed3fc93c..fa88afb7 100755 --- a/app/controllers/origami/others_payments_controller.rb +++ b/app/controllers/origami/others_payments_controller.rb @@ -4,7 +4,7 @@ class Origami::OthersPaymentsController < BaseOrigamiController @sale_id = params[:sale_id] @payment_method_setting = PaymentMethodSetting.all - @rebate = MembershipSetting.find_by_rebate(1) + @rebate = MembershipSetting.find_by_rebate(1) # @sale_id = params[:sale_id] # sale_data = Sale.find_by_sale_id(@sale_id) diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 06174935..d6671700 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -164,28 +164,40 @@ class Origami::PaymentsController < BaseOrigamiController sale_id = params[:sale_id] member_info = nil - saleObj = Sale.find(sale_id) + saleObj = Sale.find(sale_id) - unique_code = "ReceiptBillPdf" - customer= Customer.find(saleObj.customer_id) + # For Cashier by Zone + bookings = Booking.where("sale_id='#{sale_id}'") + if bookings.count > 1 + # for Multiple Booking + table = DiningFacility.find(bookings[0].dining_facility_id) + else + table = DiningFacility.find(bookings[0].dining_facility_id) + end - #shop detail - shop_details = Shop.find(1) - # get member information - rebate = MembershipSetting.find_by_rebate(1) - if customer.membership_id != nil && rebate - member_info = Customer.get_member_account(customer) - rebate_amount = Customer.get_membership_transactions(customer,saleObj.receipt_no) - end - # get printer info - print_settings=PrintSetting.find_by_unique_code(unique_code) + cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) + cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id) - # Calculate price_by_accounts - 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) + unique_code = "ReceiptBillPdf" + customer= Customer.find(saleObj.customer_id) - printer = Printer::ReceiptPrinter.new(print_settings) - printer.print_receipt_bill(print_settings,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "Re-print") + #shop detail + shop_details = Shop.find(1) + # get member information + rebate = MembershipSetting.find_by_rebate(1) + if customer.membership_id != nil && rebate + member_info = Customer.get_member_account(customer) + rebate_amount = Customer.get_membership_transactions(customer,saleObj.receipt_no) + end + # get printer info + print_settings=PrintSetting.find_by_unique_code(unique_code) + + # Calculate price_by_accounts + 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) + + printer = Printer::ReceiptPrinter.new(print_settings) + 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_details, "Re-print") end def foc @@ -200,6 +212,18 @@ class Origami::PaymentsController < BaseOrigamiController sale_payment = SalePayment.new sale_payment.process_payment(saleObj, @user, cash, "foc") + # For Cashier by Zone + bookings = Booking.where("sale_id='#{sale_id}'") + if bookings.count > 1 + # for Multiple Booking + table = DiningFacility.find(bookings[0].dining_facility_id) + else + table = DiningFacility.find(bookings[0].dining_facility_id) + end + + cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) + cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id) + unique_code = "ReceiptBillPdf" customer= Customer.find(saleObj.customer_id) @@ -213,7 +237,7 @@ class Origami::PaymentsController < BaseOrigamiController discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(saleObj.sale_items) printer = Printer::ReceiptPrinter.new(print_settings) - printer.print_receipt_bill(print_settings,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "FOC") + 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_details, "FOC") end end diff --git a/app/models/ability.rb b/app/models/ability.rb index 13712f3e..1636d048 100755 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -129,10 +129,19 @@ class Ability can :item_edit, :sale_edit can :item_void_cancel, :sale_edit can :cancel_all_void, :sale_edit - can :apply_void, :sale_edit - + can :apply_void, :sale_edit can :overall_void, :void + can :index, :other_charge + can :create, :other_charge + can :index, :discount + can :create, :discount + can :remove_discount_items, :discount + can :remove_all_discount, :discount + + can :manage, Customer + can :manage, DiningQueue + can :first_bill, :payment can :create, :payment can :show, :payment diff --git a/app/models/payment_method_setting.rb b/app/models/payment_method_setting.rb index 2ffff25d..4f1de785 100755 --- a/app/models/payment_method_setting.rb +++ b/app/models/payment_method_setting.rb @@ -1,4 +1,4 @@ class PaymentMethodSetting < ApplicationRecord # validations - validates_presence_of :payment_method, :gateway_communication_type, :gateway_url, :auth_token, :merchant_account_id + validates_presence_of :payment_method #, :gateway_communication_type, :gateway_url, :auth_token, :merchant_account_id end diff --git a/app/models/seed_generator.rb b/app/models/seed_generator.rb index 1451b11e..0748edf1 100755 --- a/app/models/seed_generator.rb +++ b/app/models/seed_generator.rb @@ -14,22 +14,14 @@ class SeedGenerator < ApplicationRecord # Generate Receipt No def self.new_receipt_no - seed = SeedGenerator.find_by_model("sale") - new_receipt_no = 0 - if (seed.nil?) - seed = SeedGenerator.new() - seed.model = "sale" - new_receipt_no = seed.next - seed.save + # Only return seed no + cur_val, next_val = self.update_seed("sale") - else - current_no = seed.next - seed.next = seed.next - seed.current = current_no - seed.save - end + if (cur_val == 0) + cur_val, next_val = self.execute_query("sale") + end - return seed.current + return cur_val end # Generate for 4 digit Code diff --git a/app/views/layouts/_left_sidebar.html.erb b/app/views/layouts/_left_sidebar.html.erb index a0006ce5..d269a3c1 100755 --- a/app/views/layouts/_left_sidebar.html.erb +++ b/app/views/layouts/_left_sidebar.html.erb @@ -35,18 +35,21 @@ <%= t :dashboard %> + <% if can? :menage, OrderQueueStation %>