diff --git a/app/controllers/inventory/inventory_controller.rb b/app/controllers/inventory/inventory_controller.rb index 673cf943..1a311552 100755 --- a/app/controllers/inventory/inventory_controller.rb +++ b/app/controllers/inventory/inventory_controller.rb @@ -1,5 +1,5 @@ class Inventory::InventoryController < BaseInventoryController - + load_and_authorize_resource def index @products = InventoryDefinition.all.active.order('created_at desc') end diff --git a/app/controllers/origami/credit_payments_controller.rb b/app/controllers/origami/credit_payments_controller.rb index fde9d6f7..f78ea560 100755 --- a/app/controllers/origami/credit_payments_controller.rb +++ b/app/controllers/origami/credit_payments_controller.rb @@ -4,9 +4,18 @@ class Origami::CreditPaymentsController < BaseOrigamiController # limit visa_amount sale_data = Sale.find_by_sale_id(@sale_id) - total = sale_data.grand_total + total = sale_data.grand_total @creditcount = 0 others = 0 + + @shop = Shop::ShopDetail + if @shop.is_rounding_adj + new_total = Sale.get_rounding_adjustment(sale_data.grand_total) + else + new_total = sale_data.grand_total + end + @rounding_adj = new_total-sale_data.grand_total + sale_data.sale_payments.each do |sale_payment| if sale_payment.payment_method == "creditnote" @creditcount = @creditcount + sale_payment.payment_amount diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb index 8e5b33c2..47ec2383 100755 --- a/app/controllers/origami/home_controller.rb +++ b/app/controllers/origami/home_controller.rb @@ -6,7 +6,7 @@ class Origami::HomeController < BaseOrigamiController @rooms = Room.all.active.order('status desc') @complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d')) @orders = Order.all.order('date desc') - @shop = Shop.find_by_id(1) + @shop = Shop::ShopDetail # @shift = ShiftSale.current_open_shift(current_user.id) end diff --git a/app/controllers/origami/in_duties_controller.rb b/app/controllers/origami/in_duties_controller.rb index 2c30bbd9..5607939a 100755 --- a/app/controllers/origami/in_duties_controller.rb +++ b/app/controllers/origami/in_duties_controller.rb @@ -1,6 +1,5 @@ class Origami::InDutiesController < BaseOrigamiController before_action :set_in_duty, only: %i[show edit update edit_in_duty update_for_in_duty destroy destroy_in_duty] - # GET /in_duties # GET /in_duties.json def index diff --git a/app/controllers/origami/jcb_controller.rb b/app/controllers/origami/jcb_controller.rb index a8b77861..02cf28ea 100755 --- a/app/controllers/origami/jcb_controller.rb +++ b/app/controllers/origami/jcb_controller.rb @@ -8,6 +8,15 @@ class Origami::JcbController < BaseOrigamiController total = sale_data.grand_total @jcbcount = 0 others = 0 + + @shop = Shop::ShopDetail + if @shop.is_rounding_adj + new_total = Sale.get_rounding_adjustment(sale_data.grand_total) + else + new_total = sale_data.grand_total + end + @rounding_adj = new_total-sale_data.grand_total + sale_data.sale_payments.each do |sale_payment| if sale_payment.payment_method == "jcb" @jcbcount = @jcbcount + sale_payment.payment_amount diff --git a/app/controllers/origami/master_controller.rb b/app/controllers/origami/master_controller.rb index ba97cad9..14a43c28 100755 --- a/app/controllers/origami/master_controller.rb +++ b/app/controllers/origami/master_controller.rb @@ -8,6 +8,15 @@ class Origami::MasterController < BaseOrigamiController total = sale_data.grand_total @mastercount = 0 others = 0 + + @shop = Shop::ShopDetail + if @shop.is_rounding_adj + new_total = Sale.get_rounding_adjustment(sale_data.grand_total) + else + new_total = sale_data.grand_total + end + @rounding_adj = new_total-sale_data.grand_total + sale_data.sale_payments.each do |sale_payment| if sale_payment.payment_method == "master" @mastercount = @mastercount + sale_payment.payment_amount diff --git a/app/controllers/origami/mpu_controller.rb b/app/controllers/origami/mpu_controller.rb index 8e62ecda..3b29599f 100755 --- a/app/controllers/origami/mpu_controller.rb +++ b/app/controllers/origami/mpu_controller.rb @@ -8,6 +8,14 @@ class Origami::MpuController < BaseOrigamiController @mpucount = 0 others = 0 + @shop = Shop::ShopDetail + if @shop.is_rounding_adj + new_total = Sale.get_rounding_adjustment(sale_data.grand_total) + else + new_total = sale_data.grand_total + end + @rounding_adj = new_total-sale_data.grand_total + sale_data.sale_payments.each do |sale_payment| if sale_payment.payment_method == "mpu" @mpucount = @mpucount + sale_payment.payment_amount diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index fdd55f06..7342a4bb 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -24,7 +24,7 @@ class Origami::PaymentsController < BaseOrigamiController # Print for First Bill to Customer unique_code = "ReceiptBillPdf" #shop detail - shop_details = Shop.find(1) + shop_details = Shop::ShopDetail # customer= Customer.where('customer_id=' +.customer_id) customer= Customer.find(sale_data.customer_id) # get member information @@ -54,6 +54,15 @@ class Origami::PaymentsController < BaseOrigamiController if(Sale.exists?(sale_id)) saleObj = Sale.find(sale_id) + shop_details = Shop::ShopDetail + + if shop_details.is_rounding_adj + 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 rounding adjment + end + sale_payment = SalePayment.new sale_payment.process_payment(saleObj, @user, cash, "cash") @@ -75,9 +84,7 @@ class Origami::PaymentsController < BaseOrigamiController # For Print unique_code = "ReceiptBillPdf" customer= Customer.find(saleObj.customer_id) - - #shop detail - shop_details = Shop.find(1) + # get member information rebate = MembershipSetting.find_by_rebate(1) if customer.membership_id != nil && rebate @@ -114,6 +121,14 @@ class Origami::PaymentsController < BaseOrigamiController @accountable_type = '' @table_no = '' + @shop = Shop::ShopDetail + if @shop.is_rounding_adj + new_total = Sale.get_rounding_adjustment(@sale_data.grand_total) + else + new_total = @sale_data.grand_total + end + @rounding_adj = new_total-@sale_data.grand_total + #get customer amount @customer = Customer.find(@sale_data.customer_id) accounts = @customer.tax_profiles @@ -127,7 +142,6 @@ class Origami::PaymentsController < BaseOrigamiController # get member information if @customer.membership_id != nil && rebate response = Customer.get_member_account(@customer) - puts response.to_json if response["status"]==true response["account_data"].each do |res| if res["accountable_type"] == "RebateAccount" || res["accountable_type"] == "RebatebonusAccount" @@ -191,7 +205,7 @@ class Origami::PaymentsController < BaseOrigamiController customer= Customer.find(saleObj.customer_id) #shop detail - shop_details = Shop.find(1) + shop_details = Shop::ShopDetail # get member information rebate = MembershipSetting.find_by_rebate(1) if customer.membership_id != nil && rebate @@ -240,7 +254,7 @@ class Origami::PaymentsController < BaseOrigamiController customer= Customer.find(saleObj.customer_id) #shop detail - shop_details = Shop.find(1) + shop_details = Shop::ShopDetail # get printer info print_settings=PrintSetting.find_by_unique_code(unique_code) diff --git a/app/controllers/origami/redeem_payments_controller.rb b/app/controllers/origami/redeem_payments_controller.rb index 802ba51b..b0f40d34 100755 --- a/app/controllers/origami/redeem_payments_controller.rb +++ b/app/controllers/origami/redeem_payments_controller.rb @@ -5,76 +5,65 @@ class Origami::RedeemPaymentsController < BaseOrigamiController @membership_rebate_balance=0 sale_data = Sale.find_by_sale_id(@sale_id) - # limit redeem_amount - # rebate_prices = SaleItem.calculate_food_beverage(sale_data.sale_items) - # nonrebate_prices = sale_data.total_amount - rebate_prices - # @payparcount = 0 - # others = 0 - # sale_data.sale_payments.each do |sale_payment| - # if sale_payment.payment_method == "paypar" - # @payparcount = @payparcount + sale_payment.payment_amount - # else - # others = others + sale_payment.payment_amount - # end - # end - # non_rebate_exceed = others - (nonrebate_prices + sale_data.total_tax) - # if non_rebate_exceed < 0 - # @redeem_prices = rebate_prices - @payparcount - # else - # @redeem_prices = rebate_prices - @payparcount -non_rebate_exceed - # end - - @payparcount = 0 - others = 0 - sale_data.sale_payments.each do |sale_payment| - if sale_payment.payment_method == "paypar" - @payparcount = @payparcount + sale_payment.payment_amount + @shop = Shop::ShopDetail + if @shop.is_rounding_adj + new_total = Sale.get_rounding_adjustment(sale_data.grand_total) else - others = others + sale_payment.payment_amount + new_total = sale_data.grand_total end - end - @redeem_prices = sale_data.grand_total - @payparcount -others + @rounding_adj = new_total-sale_data.grand_total + + @payparcount = 0 + others = 0 + sale_data.sale_payments.each do |sale_payment| + if sale_payment.payment_method == "paypar" + @payparcount = @payparcount + sale_payment.payment_amount + else + others = others + sale_payment.payment_amount + end + end + @redeem_prices = sale_data.grand_total - @payparcount -others - if sale_data - if sale_data.customer_id - customer_data= Customer.find_by_customer_id(sale_data.customer_id) - if customer_data - @membership_id = customer_data.membership_id - if !@membership_id.nil? - membership_setting = MembershipSetting.find_by_membership_type("paypar_url") - if membership_setting.gateway_url - member_actions =MembershipAction.find_by_membership_type("get_account_balance") - if member_actions.gateway_url - @campaign_type_id = member_actions.additional_parameter["campaign_type_id"] - url = membership_setting.gateway_url.to_s + member_actions.gateway_url.to_s - merchant_uid= member_actions.merchant_account_id - auth_token = member_actions.auth_token.to_s - membership_data = SalePayment.get_paypar_account(url,membership_setting.auth_token,@membership_id,@campaign_type_id,merchant_uid,auth_token) - if membership_data["status"]==true - @membership_rebate_balance=membership_data["balance"] - @out = true, @membership_rebate_balance,@membership_id - end - else - @out =false,0 - end - else - @out = false,0 - end + if sale_data + if sale_data.customer_id + customer_data= Customer.find_by_customer_id(sale_data.customer_id) + if customer_data + @membership_id = customer_data.membership_id + if !@membership_id.nil? + membership_setting = MembershipSetting.find_by_membership_type("paypar_url") + if membership_setting.gateway_url + member_actions =MembershipAction.find_by_membership_type("get_account_balance") + if member_actions.gateway_url + @campaign_type_id = member_actions.additional_parameter["campaign_type_id"] + url = membership_setting.gateway_url.to_s + member_actions.gateway_url.to_s + merchant_uid= member_actions.merchant_account_id + auth_token = member_actions.auth_token.to_s + membership_data = SalePayment.get_paypar_account(url,membership_setting.auth_token,@membership_id,@campaign_type_id,merchant_uid,auth_token) + if membership_data["status"]==true + @membership_rebate_balance=membership_data["balance"] + @out = true, @membership_rebate_balance,@membership_id + end + else + @out =false,0 + end + else + @out = false,0 + end - else - @out = false, 0 - end - else - @out = false, 0 - end - else - @out = false, 0 - end - else - @out = false, 0 - end - @out = false, 0 - end + else + @out = false, 0 + end + else + @out = false, 0 + end + else + @out = false, 0 + end + else + @out = false, 0 + end + @out = false, 0 + end end diff --git a/app/controllers/origami/visa_controller.rb b/app/controllers/origami/visa_controller.rb index 4f750fb5..f8dbbfa0 100755 --- a/app/controllers/origami/visa_controller.rb +++ b/app/controllers/origami/visa_controller.rb @@ -7,6 +7,15 @@ class Origami::VisaController < BaseOrigamiController total = sale_data.grand_total @visacount = 0 others = 0 + + @shop = Shop::ShopDetail + if @shop.is_rounding_adj + new_total = Sale.get_rounding_adjustment(sale_data.grand_total) + else + new_total = sale_data.grand_total + end + @rounding_adj = new_total-sale_data.grand_total + sale_data.sale_payments.each do |sale_payment| if sale_payment.payment_method == "visa" @visacount = @visacount + sale_payment.payment_amount diff --git a/app/controllers/origami/voucher_controller.rb b/app/controllers/origami/voucher_controller.rb index 421c31a0..c4b3c840 100755 --- a/app/controllers/origami/voucher_controller.rb +++ b/app/controllers/origami/voucher_controller.rb @@ -7,6 +7,15 @@ class Origami::VoucherController < BaseOrigamiController total = sale_data.grand_total @vouchercount = 0 others = 0 + + @shop = Shop::ShopDetail + if @shop.is_rounding_adj + new_total = Sale.get_rounding_adjustment(sale_data.grand_total) + else + new_total = sale_data.grand_total + end + @rounding_adj = new_total-sale_data.grand_total + sale_data.sale_payments.each do |sale_payment| if sale_payment.payment_method == "voucher" @vouchercount = @vouchercount + sale_payment.payment_amount diff --git a/app/controllers/reports/payment_method_controller.rb b/app/controllers/reports/payment_method_controller.rb index 23c256d3..56c6c44c 100644 --- a/app/controllers/reports/payment_method_controller.rb +++ b/app/controllers/reports/payment_method_controller.rb @@ -21,7 +21,7 @@ class Reports::PaymentMethodController < BaseReportController end @payment_type = params[:payment_type] @sale_data,@pyament_method = Sale.get_payment_method_by_shift(@shift_sale_range,@shift,from,to,@payment_type) - puts @pyament_method.to_json + puts @sale_data.to_json puts "sssssssssssss" @from = from @to = to diff --git a/app/controllers/settings/menu_item_instances_controller.rb b/app/controllers/settings/menu_item_instances_controller.rb index a214ffec..f63c09b7 100755 --- a/app/controllers/settings/menu_item_instances_controller.rb +++ b/app/controllers/settings/menu_item_instances_controller.rb @@ -26,8 +26,6 @@ class Settings::MenuItemInstancesController < ApplicationController def get_instance @id = MenuItemInstance.find(params[:id]) - puts "iddddddddd" - puts @id.to_json end # GET /settings/menu_item_instances/1/edit diff --git a/app/models/ability.rb b/app/models/ability.rb index c2947fe1..50f37fbc 100755 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -25,11 +25,6 @@ class Ability can :manage, TaxProfile can :manage, PrintSetting can :manage, Account - can :manage, Commission - can :manage, Commissioner - can :manage, Promotion - can :manage, Product - can :manage, Order can :manage, Booking @@ -79,6 +74,13 @@ class Ability can :overall_void, :void + can :manage, Commission + can :manage, Commissioner + can :manage, Promotion + can :manage, Product + + can :manage, Inventory + elsif user.role == "cashier" # can :overall_void, :void @@ -112,6 +114,11 @@ class Ability can :move_dining, :moveroom can :manage, DiningQueue + + can :manage, Commission + can :manage, Commissioner + can :manage, Promotion + can :manage, Product elsif user.role == "account" @@ -148,6 +155,12 @@ class Ability can :show, :payment can :reprint, :payment can :rounding_adj, :payment + + can :manage, Commission + can :manage, Commissioner + can :manage, Promotion + can :manage, Product + end end end diff --git a/app/models/sale.rb b/app/models/sale.rb index 46f823d1..3bdaa8af 100755 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -813,11 +813,12 @@ end def self.get_payment_method_by_shift(shift_sale_range,shift,from,to,payment_type) - sale_payment = SalePayment.select("s.receipt_no, sale_payments.*,s.receipt_date as sale_date, + sale_payment = SalePayment.select("s.amount_changed as change_amount,s.receipt_no, sale_payments.*,s.receipt_date as sale_date, s.cashier_name as cashier_name") .joins("INNER JOIN sales s ON s.sale_id = sale_payments.sale_id") + .order('s.receipt_no DESC') - payments_total = SalePayment.select("CAST((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')) AS DATE) as sale_date, + payments_total = SalePayment.select("sales.amount_changed as total_change_amount,CAST((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')) AS DATE) as sale_date, SUM(case when (sale_payments.payment_method='mpu') then sale_payments.payment_amount else 0 end) as mpu_amount, SUM(case when (sale_payments.payment_method='master') then sale_payments.payment_amount else 0 end) as master_amount, SUM(case when (sale_payments.payment_method='visa') then sale_payments.payment_amount else 0 end) as visa_amount, diff --git a/app/models/shop.rb b/app/models/shop.rb index 9e8217df..c722adc2 100755 --- a/app/models/shop.rb +++ b/app/models/shop.rb @@ -1,3 +1,3 @@ class Shop < ApplicationRecord - + ShopDetail = Shop.find_by_id(1) end diff --git a/app/views/layouts/_left_sidebar.html.erb b/app/views/layouts/_left_sidebar.html.erb index 1ec77487..80ea2fb1 100755 --- a/app/views/layouts/_left_sidebar.html.erb +++ b/app/views/layouts/_left_sidebar.html.erb @@ -65,12 +65,14 @@ <% end %> -
  • + <% if can? :menage, Inventory %> + + <%end%>
  • widgets diff --git a/app/views/origami/credit_payments/index.html.erb b/app/views/origami/credit_payments/index.html.erb index a1c3629b..712284da 100755 --- a/app/views/origami/credit_payments/index.html.erb +++ b/app/views/origami/credit_payments/index.html.erb @@ -21,6 +21,7 @@
    + <%@can_credit = @can_credit +@rounding_adj%>
    diff --git a/app/views/origami/home/show.html.erb b/app/views/origami/home/show.html.erb index d18e0c8f..f479fdd5 100755 --- a/app/views/origami/home/show.html.erb +++ b/app/views/origami/home/show.html.erb @@ -377,8 +377,10 @@ + + @@ -522,19 +524,20 @@ }); }); + // $('#pay').on('click', function () { + // var sale_id = $('#sale_id').val(); + // var url = '/origami/sale/' + sale_id + "/rounding_adj"; + // $.ajax({ + // type: "POST", + // url: '/origami/sale/' + sale_id + "/rounding_adj", + // success: function (result) { + // window.location.href = '/origami/sale/' + sale_id + "/payment"; + // } + // }); + // }); $('#pay').on('click', function () { var sale_id = $('#sale_id').val(); - - var url = '/origami/sale/' + sale_id + "/rounding_adj"; - $.ajax({ - type: "POST", - url: '/origami/sale/' + sale_id + "/rounding_adj", - success: function (result) { - window.location.href = '/origami/sale/' + sale_id + "/payment"; - } - }); - - + window.location.href = '/origami/sale/' + sale_id + "/payment"; }); // Bill Request diff --git a/app/views/origami/jcb/index.html.erb b/app/views/origami/jcb/index.html.erb index 0f38afcf..226accab 100755 --- a/app/views/origami/jcb/index.html.erb +++ b/app/views/origami/jcb/index.html.erb @@ -20,6 +20,7 @@
    + <%@can_jcb = @can_jcb +@rounding_adj%>

    diff --git a/app/views/origami/master/index.html.erb b/app/views/origami/master/index.html.erb index 497bfa3b..fb271154 100755 --- a/app/views/origami/master/index.html.erb +++ b/app/views/origami/master/index.html.erb @@ -20,6 +20,7 @@
    + <%@can_master = @can_master +@rounding_adj%>

    diff --git a/app/views/origami/mpu/index.html.erb b/app/views/origami/mpu/index.html.erb index 89196450..82ed09f2 100755 --- a/app/views/origami/mpu/index.html.erb +++ b/app/views/origami/mpu/index.html.erb @@ -21,7 +21,8 @@
    - + <%@can_mpu = @can_mpu +@rounding_adj%> +

    diff --git a/app/views/origami/payments/show.html.erb b/app/views/origami/payments/show.html.erb index db23f9ba..796015d6 100755 --- a/app/views/origami/payments/show.html.erb +++ b/app/views/origami/payments/show.html.erb @@ -94,11 +94,11 @@ Rounding Adj: - <%=@sale_data.rounding_adjustment rescue 0%> + <%=@rounding_adj rescue 0%> Grand Total - <%=@sale_data.grand_total rescue 0%> + <%=@sale_data.grand_total+ @rounding_adj rescue 0%> <%if @balance > 0%> @@ -109,7 +109,7 @@
    - + @@ -121,7 +121,7 @@
    Amount Due
    -
    <%= @sale_data.grand_total %>
    +
    <%= @sale_data.grand_total + @rounding_adj rescue 0%>
    @@ -219,7 +219,7 @@
    Balance
    -
    <%= @sale_data.grand_total %>
    +
    <%= @sale_data.grand_total+ @rounding_adj rescue 0 %>
    diff --git a/app/views/origami/redeem_payments/index.html.erb b/app/views/origami/redeem_payments/index.html.erb index 23b6dc29..20ebdd88 100755 --- a/app/views/origami/redeem_payments/index.html.erb +++ b/app/views/origami/redeem_payments/index.html.erb @@ -17,6 +17,7 @@
    + <%@redeem_prices = @redeem_prices +@rounding_adj%>

    diff --git a/app/views/origami/rooms/show.html.erb b/app/views/origami/rooms/show.html.erb index 5e461650..54d8f5f3 100755 --- a/app/views/origami/rooms/show.html.erb +++ b/app/views/origami/rooms/show.html.erb @@ -348,6 +348,7 @@ + diff --git a/app/views/origami/visa/index.html.erb b/app/views/origami/visa/index.html.erb index dead9527..04dad682 100755 --- a/app/views/origami/visa/index.html.erb +++ b/app/views/origami/visa/index.html.erb @@ -20,6 +20,7 @@
    + <%@can_visa = @can_visa +@rounding_adj%>

    diff --git a/app/views/reports/payment_method/index.html.erb b/app/views/reports/payment_method/index.html.erb index a4532457..c3be1bc3 100755 --- a/app/views/reports/payment_method/index.html.erb +++ b/app/views/reports/payment_method/index.html.erb @@ -82,7 +82,7 @@ <%= t("views.right_panel.detail.shift_name") %> - <%= t("views.right_panel.detail.payment_method") %> + <%= t("views.right_panel.detail.receipt_no") %> <%= t :cashier %> <%= t("views.right_panel.detail.name") %> <%= t :payment_method %> <%= t("views.right_panel.detail.amount") %> @@ -92,7 +92,11 @@ <% total = 0 %> <% @pyament_method.each do |payment| %> - <% total += payment.payment_amount + payment.outstanding_amount %> + <% if payment.payment_method === 'cash' + total += payment.payment_amount - payment.change_amount + else + total += payment.payment_amount + end%> <% if @shift_from.nil? && @shift_to.nil? %> <%= payment.sale_date.utc.getlocal.strftime("%e %b %I:%M%p") rescue '-'%> @@ -103,7 +107,11 @@ <%= payment.cashier_name rescue '-' %> <%= payment.payment_method rescue '-' %> - <%= payment.payment_amount + payment.outstanding_amount%> + <% if payment.payment_method === 'cash' %> + <%= payment.payment_amount - payment.change_amount%> + <%else%> + <%= payment.payment_amount%> + <%end%> <%= payment.sale.grand_total rescue '-' %>