diff --git a/.gitignore b/.gitignore index 3560a44c..00145499 100755 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,8 @@ config/shops.json #Seed Generator Backup File /app/models/seed_generator_bk.rb + +# crt and key +*.crt +*.key +*.pid diff --git a/app/controllers/api/restaurant/menu_controller.rb b/app/controllers/api/restaurant/menu_controller.rb index a01df832..0a5a094f 100755 --- a/app/controllers/api/restaurant/menu_controller.rb +++ b/app/controllers/api/restaurant/menu_controller.rb @@ -9,7 +9,7 @@ class Api::Restaurant::MenuController < Api::ApiController # checksum = File.readlines("public/checksums/menu_json.txt").pop.chomp shop_code = params[:shop_code] - all_menu = Menu.where('shop_id=?',shop_code).active.all + all_menu = Menu.where('shop_code=?',shop_code).active.all @request_url = '' if ENV["SERVER_MODE"] == "cloud" @request_url = request.base_url @@ -17,20 +17,20 @@ class Api::Restaurant::MenuController < Api::ApiController # to hash menu_array = [] all_menu.each do |m| - menu_array.push(m.to_json(:include => {:menu_categories => - { :include => { :menu_items => - { :include => [:menu_item_sets, :menu_item_instances => + menu_array.push(m.to_json(:include => {:menu_categories => + { :include => { :menu_items => + { :include => [:menu_item_sets, :menu_item_instances => { :include => :menu_instance_item_sets}]} } }})) - end - + end + #export Checksum file generate by md5 menu_checksum = Digest::MD5.hexdigest(menu_array.to_json) if menu_checksum != param_checksum response.headers['CHECKSUM'] = menu_checksum - @menus = all_menu + @menus = all_menu end - # @current_menu = Menu.current_menu + # @current_menu = Menu.current_menu end #Description diff --git a/app/controllers/api/verifications_controller.rb b/app/controllers/api/verifications_controller.rb index c65f24bc..ba055b88 100644 --- a/app/controllers/api/verifications_controller.rb +++ b/app/controllers/api/verifications_controller.rb @@ -1,6 +1,6 @@ class Api::VerificationsController < ActionController::API - def new + def new phone_number = params[:phone_number] #TODO - user generate @@ -10,9 +10,9 @@ class Api::VerificationsController < ActionController::API VerifyNumber.send_message(phone_number, @cus.pin_code) @result = true end - end + end - def update + def update phone_number = params[:phone_number] pin_code = params[:pin_code] @cus = Customer.find_by_contact_no(phone_number) @@ -23,4 +23,4 @@ class Api::VerificationsController < ActionController::API end end -end \ No newline at end of file +end diff --git a/app/controllers/concerns/login_verification.rb b/app/controllers/concerns/login_verification.rb index 4b8f1067..5ae86b18 100755 --- a/app/controllers/concerns/login_verification.rb +++ b/app/controllers/concerns/login_verification.rb @@ -18,7 +18,7 @@ module LoginVerification def current_shop begin - shop_code ='262' + shop_code ='263' @shop =Shop.find_by_shop_code(shop_code) return @shop rescue @@ -42,7 +42,7 @@ module LoginVerification #Shop Name in Navbor def shop_detail - shop_code ='262' + shop_code ='263' @shop = Shop.find_by_shop_code(shop_code) return @shop end diff --git a/app/controllers/origami/bank_integration_controller.rb b/app/controllers/origami/bank_integration_controller.rb index cb735873..99c462e3 100644 --- a/app/controllers/origami/bank_integration_controller.rb +++ b/app/controllers/origami/bank_integration_controller.rb @@ -1,5 +1,5 @@ class Origami::BankIntegrationController < ApplicationController #BaseOrigamiController - + def settle_trans if(params[:type] == 'request') card_settle_trans = CardSettleTran.new() @@ -35,7 +35,7 @@ class Origami::BankIntegrationController < ApplicationController #BaseOrigamiCon card_settle_trans.save() response = {status: 'success'} end - render json: response + render json: response end def sale_trans @@ -93,7 +93,7 @@ class Origami::BankIntegrationController < ApplicationController #BaseOrigamiCon response = {status: 'success'} end - render json: response + render json: response end end diff --git a/app/controllers/origami/food_court_controller.rb b/app/controllers/origami/food_court_controller.rb index 1157bb44..69826641 100644 --- a/app/controllers/origami/food_court_controller.rb +++ b/app/controllers/origami/food_court_controller.rb @@ -17,14 +17,14 @@ class Origami::FoodCourtController < ApplicationController # @menus = Menu.all # @menu = MenuCategory.active.where("menu_id =#{@menus[0].id}").order('order_by asc') # end - @zone = Zone.all + @zone = Zone.all.where("shop_code='#{@shop.shop_code}' and is_active= true") @customer = Customer.all - @tables = Table.all.active.order('status desc') - @rooms = Room.all.active.order('status desc') + @tables = Table.all.active.where("shop_code='#{@shop.shop_code}'").order('status desc') + @rooms = Room.all.active.where("shop_code='#{@shop.shop_code}'").order('status desc') @cashier_type = "food_court" #checked quick_service only @quick_service_only = true - lookup_dine_in = Lookup.collection_of('dinein_cashier') + lookup_dine_in = Lookup.where("shop_code='#{@shop.shop_code}'").collection_of('dinein_cashier') if !lookup_dine_in.empty? lookup_dine_in.each do |dine_in| if dine_in[0].downcase == "dineincashier" @@ -156,7 +156,7 @@ class Origami::FoodCourtController < ApplicationController end def get_all_product() - @product = Product.all + @product = Product..where("shop_code='#{@shop.shop_code}'") end # render json for http status code @@ -186,12 +186,6 @@ class Origami::FoodCourtController < ApplicationController end end end - - def check_user - if current_user.nil? - redirect_to root_path - end - end # this can always true def check_order_with_booking(booking) if booking.sale.sale_status == "completed" || booking.sale.sale_status == "new" diff --git a/app/controllers/origami/paymal_controller.rb b/app/controllers/origami/paymal_controller.rb index 4b03d0fb..91fa4790 100644 --- a/app/controllers/origami/paymal_controller.rb +++ b/app/controllers/origami/paymal_controller.rb @@ -33,9 +33,9 @@ class Origami::PaymalController < BaseOrigamiController if customer_data @membership_id = customer_data.membership_id if !@membership_id.nil? - membership_setting = MembershipSetting.find_by_membership_type("paypar_url") + membership_setting = MembershipSetting.find_by_membership_type_and_shop_code("paypar_url",@shop.shop_code) if membership_setting.gateway_url - member_actions =MembershipAction.find_by_membership_type("get_account_balance") + member_actions =MembershipAction.find_by_membership_type_and_shop_code("get_account_balance",@shop.shop_code) if member_actions.gateway_url @campaign_type_id = nil url = membership_setting.gateway_url.to_s + member_actions.gateway_url.to_s @@ -72,7 +72,6 @@ def create sale_id = params[:sale_id] transaction_ref = params[:transaction_ref] account_no = params[:account_no] - puts params.to_json if(Sale.exists?(sale_id)) saleObj = Sale.find(sale_id) # shop_details = Shop.first @@ -87,6 +86,7 @@ def create # saleObj = Sale.find(sale_id) sale_payment = SalePayment.new status, @sale,@membership_data = sale_payment.process_payment(saleObj, current_user, cash, "paymal",account_no) + if status == true && @membership_data["status"] == true @out = true, "Success!" else diff --git a/app/controllers/settings/payment_method_settings_controller.rb b/app/controllers/settings/payment_method_settings_controller.rb index 515bae9d..74b2a10b 100755 --- a/app/controllers/settings/payment_method_settings_controller.rb +++ b/app/controllers/settings/payment_method_settings_controller.rb @@ -26,7 +26,7 @@ class Settings::PaymentMethodSettingsController < ApplicationController # POST /settings/payment_method_settings.json def create @settings_payment_method_setting = PaymentMethodSetting.new(settings_payment_method_setting_params) - @settings_payment_method_settings.shop_code = @shop.shop_code + @settings_payment_method_setting.shop_code = @shop.shop_code respond_to do |format| if @settings_payment_method_setting.save format.html { redirect_to settings_payment_method_settings_path, notice: 'Payment method setting was successfully created.' } diff --git a/app/models/customer.rb b/app/models/customer.rb index 0795d59b..569efac1 100755 --- a/app/models/customer.rb +++ b/app/models/customer.rb @@ -33,7 +33,7 @@ class Customer < ApplicationRecord cus.save return cus end - end + end def self.get_member_account(customer) membership = MembershipSetting.active.find_by_membership_type("paypar_url") @@ -44,7 +44,7 @@ class Customer < ApplicationRecord # urltest =self.url_exist?(url) if !membership.nil? && !memberaction.nil? begin - response = HTTParty.get(url, :body => { + response = HTTParty.get(url, :body => { membership_id: customer.membership_id, merchant_uid:merchant_uid, type: "summary", @@ -57,7 +57,7 @@ class Customer < ApplicationRecord :timeout => 10) rescue HTTParty::Error response = {status: false, message: "Server Error"} - + rescue Net::OpenTimeout response = { status: false , message: "Server Time out"} @@ -125,7 +125,7 @@ class Customer < ApplicationRecord auth_token = memberaction.auth_token.to_s url = membership.gateway_url.to_s + memberaction.gateway_url.to_s - @customers = Customer.where("membership_type IS NOT NULL AND membership_id IS NULL") + @customers = Customer.where("membership_type IS NOT NULL AND membership_id IS NULL") @customers.each do |customer| member_params = { name: customer.name,phone: customer.contact_no, @@ -143,7 +143,7 @@ class Customer < ApplicationRecord paypar_account_no: customer.paypar_account_no, card_no:customer.card_no,member_group_id: customer.membership_type, merchant_uid:merchant_uid,auth_token:auth_token}.to_json - end + end begin response = HTTParty.post(url, @@ -154,7 +154,7 @@ class Customer < ApplicationRecord }) rescue Net::OpenTimeout response = { status: false, message: "Server Time out" } - + rescue OpenURI::HTTPError response = { status: false, message: "Can't connect server"} @@ -172,12 +172,12 @@ class Customer < ApplicationRecord def self.update_rebate sales = Sale.where("rebate_status = 'false'") sales.each do |sale| - if sale.customer.membership_id + if sale.customer.membership_id response = self.rebat(Sale.find(sale.sale_id)) #record an payment in sale-audit if !response.nil? remark = "UPdate Rebate Response - #{response} for Customer #{sale.customer_id} Sale Id [#{sale.sale_id}]| pay amount -> #{sale.amount_received} " - sale_audit = SaleAudit.record_paymal(sale.sale_id, remark, 1) + sale_audit = SaleAudit.record_paymal(sale.sale_id, remark, 1) end if response["status"] == true status = sale.update_attributes(rebate_status: "true") @@ -190,7 +190,7 @@ class Customer < ApplicationRecord rebate_prices,campaign_method = SaleItem.calculate_rebate_by_account(sObj.sale_items) generic_customer_id = sObj.customer.membership_id - + if generic_customer_id.present? paypar = sObj.sale_payments payparcost = 0 @@ -207,7 +207,7 @@ class Customer < ApplicationRecord end # overall_dis = SaleItem.get_overall_discount(sObj.id) overall_dis = sObj.total_discount - + if credit != 1 membership = MembershipSetting.find_by_membership_type("paypar_url") memberaction = MembershipAction.find_by_membership_type("get_member_campaign") @@ -218,8 +218,8 @@ class Customer < ApplicationRecord # Control for Paypar Cloud begin - response = HTTParty.get(url, - :body => { + response = HTTParty.get(url, + :body => { member_group_id:sObj.customer.membership_type, merchant_uid:merchant_uid, campaign_type_id: campaign_type_id, @@ -233,7 +233,7 @@ class Customer < ApplicationRecord response = { "status": false , "message": "Connect To" } rescue OpenURI::HTTPError response = { "status": false, "message": "Can't connect server"} - + rescue SocketError response = { "status": false, "message": "Can't connect server"} end @@ -250,7 +250,7 @@ class Customer < ApplicationRecord response["membership_campaign_data"].each do |a| data = {:type => a["rules_type"], :percentage => a["change_unit"].to_i * a["base_unit"].to_i} total_percentage = total_percentage + a["change_unit"].to_i * a["base_unit"].to_i - + type_arr.push(data) end end @@ -267,7 +267,7 @@ class Customer < ApplicationRecord actual = a[:amount] - amount data[:amount] = actual end - + end end rebate_arr.push(data) @@ -290,8 +290,8 @@ class Customer < ApplicationRecord # Control for Paypar Cloud begin - response = HTTParty.post(url, - :body => { + response = HTTParty.post(url, + :body => { generic_customer_id:generic_customer_id , total_sale_transaction_amount: sObj.grand_total, merchant_uid:merchant_uid, @@ -309,7 +309,7 @@ class Customer < ApplicationRecord response = { "status": false , "message": "Connect To" } rescue OpenURI::HTTPError response = { "status": false, "message": "Can't connect server"} - + rescue SocketError response = { "status": false, "message": "Can't connect server"} end @@ -320,7 +320,7 @@ class Customer < ApplicationRecord end else puts "no Response" - response = { "status": "no_member", "message": "Not membership"} + response = { "status": "no_member", "message": "Not membership"} end end @@ -331,8 +331,8 @@ class Customer < ApplicationRecord auth_token = memberaction.auth_token.to_s url = membership.gateway_url.to_s + memberaction.gateway_url.to_s begin - response = HTTParty.get(url, - :body => { paypar_account_no:account_no, + response = HTTParty.get(url, + :body => { paypar_account_no:account_no, merchant_uid:merchant_uid, auth_token:auth_token }.to_json, diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 0e2902ce..d01b2069 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -171,7 +171,8 @@ class SalePayment < ApplicationRecord #record an payment in sale-audit remark = "Payment failed - Grand Total [#{invoice.grand_total}] | Due [#{amount_due}] | Paid [#{invoice.amount_received}]" sale_audit = SaleAudit.record_payment(invoice.id, remark,action_by.name) - return false, "Payment failed" + # return false, "Payment failed" + return false, self.save,membership_data end else #record an payment in sale-audit @@ -303,8 +304,8 @@ class SalePayment < ApplicationRecord def self.create_payment(paypar_url,payment_type,membership_id,received_amount,sale_id) # membership_actions_data = MembershipAction.find_by_membership_type("create_payment"); - membership_actions_data = PaymentMethodSetting.find_by_payment_method(payment_type) sale_data = Sale.find_by_sale_id(sale_id) + membership_actions_data = PaymentMethodSetting.find_by_payment_method_and_shop_code(payment_type,sale_data.shop_code) customer_data = Customer.find_by_customer_id(sale_data.customer_id) if !membership_actions_data.nil? @@ -543,7 +544,7 @@ class SalePayment < ApplicationRecord # if account_no.to_i <= 0 # account_no = customer_data.membership_id # end - membership_setting = MembershipSetting.find_by_membership_type("paypar_url") + membership_setting = MembershipSetting.find_by_membership_type_and_shop_code("paypar_url",self.sale.shop_code) membership_data = SalePayment.create_payment(membership_setting.gateway_url,"PAYMAL",account_no,self.received_amount,self.sale.sale_id) #record an payment in sale-audit @@ -686,7 +687,7 @@ class SalePayment < ApplicationRecord self.sale.sale_status = "completed" - if MembershipSetting.find_by_rebate(1) && is_foc == 0 && is_credit == 0 + if MembershipSetting.find_by_rebate_and_shop_code(1,self.sale.shop_code) && is_foc == 0 && is_credit == 0 response = rebat(sObj) #record an payment in sale-audit @@ -845,8 +846,8 @@ class SalePayment < ApplicationRecord overall_dis = sObj.total_discount if credit != 1 - membership = MembershipSetting.find_by_membership_type("paypar_url") - memberaction = MembershipAction.find_by_membership_type("get_member_campaign") + membership = MembershipSetting.find_by_membership_type_and_shop_code("paypar_url",sObj.shop_code) + memberaction = MembershipAction.find_by_membership_type_and_shop_code("get_member_campaign",sObj.shop_code) merchant_uid = memberaction.merchant_account_id.to_s campaign_type_id = memberaction.additional_parameter["campaign_type_id"] auth_token = memberaction.auth_token.to_s @@ -930,8 +931,8 @@ class SalePayment < ApplicationRecord if total_amount >= 0 receipt_no = sObj.receipt_no - membership = MembershipSetting.find_by_membership_type("paypar_url") - memberaction = MembershipAction.find_by_membership_type("rebate") + membership = MembershipSetting.find_by_membership_type_and_shop_code("paypar_url",sObj.shop_code) + memberaction = MembershipAction.find_by_membership_type_and_shop_code("rebate",sObj.shop_code) merchant_uid = memberaction.merchant_account_id.to_s campaign_type_id = memberaction.additional_parameter["campaign_type_id"] auth_token = memberaction.auth_token.to_s @@ -962,7 +963,7 @@ class SalePayment < ApplicationRecord rescue SocketError response = { "status": false, "message": "Can't connect server"} end - Rails.logger.debug "Rebage Response" + Rails.logger.debug "Rebate Response" Rails.logger.debug response.to_json return response end diff --git a/app/views/api/orders/create.json.jbuilder b/app/views/api/orders/create.json.jbuilder index 175e6e94..6c5a6fe9 100755 --- a/app/views/api/orders/create.json.jbuilder +++ b/app/views/api/orders/create.json.jbuilder @@ -3,7 +3,7 @@ if @status == true json.id @order.id json.booking_id @booking.id json.order_items do - json.array! @order.order_items, :item_code, :item_name, :qty, :options, :remark + json.array! @order.order_items, :item_code, :item_name, :qty, :options, :remark,:price end else json.status :error diff --git a/app/views/api/verifications/new.json.jbuilder b/app/views/api/verifications/new.json.jbuilder index b4000002..c187f79b 100644 --- a/app/views/api/verifications/new.json.jbuilder +++ b/app/views/api/verifications/new.json.jbuilder @@ -1,7 +1,7 @@ if @result && @cus - json.status true + json.status true json.sent_pin true - else + else json.status false json.message "Customer Not Found" - end \ No newline at end of file + end diff --git a/config/application.rb b/config/application.rb index 382661d3..db3e8071 100755 --- a/config/application.rb +++ b/config/application.rb @@ -23,7 +23,17 @@ module SXRestaurants config.active_record.time_zone_aware_types = [:datetime, :time] config.active_job.queue_adapter = :sidekiq config.time_zone = 'Asia/Rangoon' - + + config.middleware.insert_before ActionDispatch::Static, Rack::Cors do + allow do + origins '*' + resource( + '*', + headers: :any, + methods: [:get, :patch, :put, :delete, :post, :options] + ) + end + end end end diff --git a/db/migrate/20191127053921_add_shop_code_membership_action.rb b/db/migrate/20191127053921_add_shop_code_membership_action.rb new file mode 100644 index 00000000..2439d7b1 --- /dev/null +++ b/db/migrate/20191127053921_add_shop_code_membership_action.rb @@ -0,0 +1,5 @@ +class AddShopCodeMembershipAction < ActiveRecord::Migration[5.1] + def change + add_column :membership_actions, :shop_code, :string, :default => '262' + end +end