From 9b2312d3ba07b49c52e1d2a312638694c970767b Mon Sep 17 00:00:00 2001 From: phyusin Date: Wed, 11 Apr 2018 14:38:16 +0630 Subject: [PATCH 1/3] change ordr reservation api --- app/assets/javascripts/origami.js | 18 +- .../order_reservation_controller.rb | 31 ++- app/models/order_reservation.rb | 65 +++--- app/views/origami/paymal/index.html.erb | 209 ++++++++++++++++-- config/initializers/action_controller.rb | 10 +- ...0180406080240_create_order_reservations.rb | 2 + ...06080359_create_order_reservation_items.rb | 1 + .../20180406080436_create_deliveries.rb | 1 + 8 files changed, 269 insertions(+), 68 deletions(-) diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js index fb3f966b..ca021430 100755 --- a/app/assets/javascripts/origami.js +++ b/app/assets/javascripts/origami.js @@ -336,8 +336,24 @@ function resCardSaleTrans(card_sale_trans_id,cmd_type,payment_type, bnk_bill_amo } }); }else{ + if(payment_type!="master"){ + payment_type = payment_type.toUpperCase(); + }else{ + payment_type = "Master"; + } + $("#loading_wrapper").hide(); - swal ( "Oops" , resMsg.toString() , "error" ); + swal({ + title: 'Oops', + text: resMsg.toString(), + type: 'error', + html: true, + closeOnConfirm: false, + closeOnCancel: false, + allowOutsideClick: false + }, function () { + window.location.href = '/origami/sale/'+ sale_id +"/"+cashier_type + "/payment/others_payment/"+payment_type; + }); } } diff --git a/app/controllers/api/order_reserve/order_reservation_controller.rb b/app/controllers/api/order_reserve/order_reservation_controller.rb index 957b84a9..2dfc29aa 100644 --- a/app/controllers/api/order_reserve/order_reservation_controller.rb +++ b/app/controllers/api/order_reserve/order_reservation_controller.rb @@ -6,8 +6,15 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController def check_customer customer_id = 0 + if !params[:name] + render :json => { :status => false, :message => "name is required!" } + elsif !params[:email] + render :json => { :status => false, :message => "email is required!" } + elsif !params[:membership_id] + render :json => { :status => false, :message => "membership_id is required!" } + end - check_customer = Customer.find_by_email_and_contact_no_and_membership_id(params[:email],params[:contact_no],params[:membership_id]) + check_customer = Customer.find_by_email_and_membership_id(params[:email],params[:membership_id]) if !check_customer.nil? customer_id = check_customer.customer_id else @@ -24,6 +31,10 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController render :json => { :status => false, :message => "cus_info is required!" } elsif !params[:requested_time] render :json => { :status => false, :message => "requested_time is required!" } + elsif !params[:callback_url] + render :json => { :status => false, :message => "callback_url is required!" } + elsif !params[:reference] + render :json => { :status => false, :message => "reference is required!" } elsif !params[:order_type] render :json => { :status => false, :message => "order_type is required!" } elsif params[:order_type] == ORDER || params[:order_type] == ORDER_RESERVATION @@ -32,23 +43,25 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController else status = true end - elsif !params[:payment_info] - render :json => { :status => false, :message => "payment_info is required!" } - elsif !params[:delivery_info] - render :json => { :status => false, :message => "delivery_info is required!" } elsif params[:order_type] == RESERVATION || params[:order_type] == ORDER_RESERVATION if !params[:reservation_info] render :json => { :status => false, :message => "reservation_info is required!" } else status = true end - elsif !params[:callback_url] - render :json => { :status => false, :message => "callback_url is required!" } + elsif !params[:payment_info] + render :json => { :status => false, :message => "payment_info is required!" } + elsif !params[:delivery_info] + render :json => { :status => false, :message => "delivery_info is required!" } end if status == true - OrderReservation.addOrderReservationInfo(params) - render :json => { :status => true, :message => "Order reservation is successfully created!" } + order_reservation_id, flag = OrderReservation.addOrderReservationInfo(params) + if flag + render :json => { :status => true, :order_reservation_id => order_reservation_id, :message => "Order reservation is successfully created!" } + else + render :json => { :status => true, :order_reservation_id => order_reservation_id, :message => "Order reservation is already existed!" } + end end end end diff --git a/app/models/order_reservation.rb b/app/models/order_reservation.rb index 84821314..62342b0c 100644 --- a/app/models/order_reservation.rb +++ b/app/models/order_reservation.rb @@ -8,36 +8,43 @@ class OrderReservation < ApplicationRecord belongs_to :delivery def self.addOrderReservationInfo(params) - order_reservation = OrderReservation.new - order_reservation.order_reservation_type = params[:order_type] - order_reservation.customer_id = params[:cus_info] - order_reservation.requested_time = Time.parse(params[:requested_time]).utc.strftime("%Y-%m-%d %H:%M:%S") - if params[:order_info] - order_reservation.callback_url = params[:order_info][:callback_url] - order_reservation.item_count = params[:order_info][:items].count - order_reservation.payment_type = params[:payment_info][:payment_type] - order_reservation.payment_status = params[:payment_info][:payment_status] - order_reservation.payment_ref = params[:payment_info][:payment_ref] - order_reservation.total_amount = params[:payment_info][:sub_total] - order_reservation.total_tax = params[:payment_info][:total_tax] - order_reservation.discount_amount = params[:payment_info][:discount_amount] - order_reservation.grand_total = params[:payment_info][:grand_total] - order_reservation.order_remark = params[:order_info][:order_remark] - end - if params[:reservation_info] - order_reservation.total_customer = params[:reservation_info][:total_user] - order_reservation.reservation_remark = params[:reservation_info][:reservation_note] - end - order_reservation.save! - if params[:order_info][:items] - params[:order_info][:items].each do |oritem| - OrderReservationItem.process_order_reservation_item(oritem[:product_code],oritem[:item_instance_code],oritem[:product_name],oritem[:product_alt_name], - oritem[:account_id],oritem[:qty],oritem[:price],oritem[:unit_price], - oritem[:options],nil,order_reservation.id) + check_order_reservation = OrderReservation.where("transaction_ref = ?",params[:reference]) + if check_order_reservation.empty? + order_reservation = OrderReservation.new + order_reservation.order_reservation_type = params[:order_type] + order_reservation.customer_id = params[:cus_info] + order_reservation.requested_time = Time.parse(params[:requested_time]).utc.strftime("%Y-%m-%d %H:%M:%S") + order_reservation.callback_url = params[:callback_url] + order_reservation.transaction_ref = params[:reference] + if params[:order_info] + order_reservation.item_count = params[:order_info][:items].count + order_reservation.payment_type = params[:payment_info][:payment_type] + order_reservation.payment_status = params[:payment_info][:payment_status] + order_reservation.payment_ref = params[:payment_info][:payment_ref] + order_reservation.total_amount = params[:payment_info][:sub_total] + order_reservation.total_tax = params[:payment_info][:total_tax] + order_reservation.discount_amount = params[:payment_info][:discount_amount] + order_reservation.grand_total = params[:payment_info][:grand_total] + order_reservation.order_remark = params[:order_info][:order_remark] end - end - if params[:delivery_info] - Delivery.addDeliveryInfo(params[:delivery_info],order_reservation.id) + if params[:reservation_info] + order_reservation.total_customer = params[:reservation_info][:total_user] + order_reservation.reservation_remark = params[:reservation_info][:reservation_note] + end + order_reservation.save! + if params[:order_info][:items] + params[:order_info][:items].each do |oritem| + OrderReservationItem.process_order_reservation_item(oritem[:product_code],oritem[:item_instance_code],oritem[:product_name],oritem[:product_alt_name], + oritem[:account_id],oritem[:qty],oritem[:price],oritem[:unit_price], + oritem[:options],nil,order_reservation.id) + end + end + if params[:delivery_info] + Delivery.addDeliveryInfo(params[:delivery_info],order_reservation.id) + end + return order_reservation.id, true + else + return check_order_reservation[0].id, false end end diff --git a/app/views/origami/paymal/index.html.erb b/app/views/origami/paymal/index.html.erb index 627f9085..bbbbbafa 100644 --- a/app/views/origami/paymal/index.html.erb +++ b/app/views/origami/paymal/index.html.erb @@ -106,6 +106,32 @@ + + + + diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index 26255b59..b063f28e 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -20,11 +20,11 @@ class ActionController::Base end else #check for license file - if check_license - current_license(ENV["SX_PROVISION_URL"]) - else - redirect_to activate_path - end + # if check_license + # current_license(ENV["SX_PROVISION_URL"]) + # else + # redirect_to activate_path + # end end end diff --git a/db/migrate/20180406080240_create_order_reservations.rb b/db/migrate/20180406080240_create_order_reservations.rb index 4a53aaf0..cde96ac0 100644 --- a/db/migrate/20180406080240_create_order_reservations.rb +++ b/db/migrate/20180406080240_create_order_reservations.rb @@ -6,6 +6,7 @@ class CreateOrderReservations < ActiveRecord::Migration[5.1] t.string :customer_id, :null => false t.datetime :requested_time, :null => false t.string :callback_url, :null => false + t.string :transaction_ref, :null => false t.integer :item_count, :null => false, :default => 0 t.integer :total_customer t.string :payment_type @@ -18,6 +19,7 @@ class CreateOrderReservations < ActiveRecord::Migration[5.1] t.string :status, :null => false, :default => "new" t.string :order_remark t.string :reservation_remark + t.timestamps end end diff --git a/db/migrate/20180406080359_create_order_reservation_items.rb b/db/migrate/20180406080359_create_order_reservation_items.rb index 9d320f77..c74900dd 100644 --- a/db/migrate/20180406080359_create_order_reservation_items.rb +++ b/db/migrate/20180406080359_create_order_reservation_items.rb @@ -16,6 +16,7 @@ class CreateOrderReservationItems < ActiveRecord::Migration[5.1] t.string :remark t.string :options t.boolean :taxable, :null => false, :default => true + t.timestamps end end diff --git a/db/migrate/20180406080436_create_deliveries.rb b/db/migrate/20180406080436_create_deliveries.rb index 6b4e6487..4c66ada0 100644 --- a/db/migrate/20180406080436_create_deliveries.rb +++ b/db/migrate/20180406080436_create_deliveries.rb @@ -9,6 +9,7 @@ class CreateDeliveries < ActiveRecord::Migration[5.1] t.string :direction_address t.string :delivery_fee t.string :remark + t.timestamps end end From 8261a3453a5508f6d33a73abe5dab3c9d9c95105 Mon Sep 17 00:00:00 2001 From: phyusin Date: Wed, 11 Apr 2018 14:40:28 +0630 Subject: [PATCH 2/3] remove # in action controller --- config/initializers/action_controller.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index b063f28e..26255b59 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -20,11 +20,11 @@ class ActionController::Base end else #check for license file - # if check_license - # current_license(ENV["SX_PROVISION_URL"]) - # else - # redirect_to activate_path - # end + if check_license + current_license(ENV["SX_PROVISION_URL"]) + else + redirect_to activate_path + end end end From 0413d56a83a77a0987d4c2e1e2b980ac53e2ac9c Mon Sep 17 00:00:00 2001 From: phyusin Date: Wed, 11 Apr 2018 16:18:42 +0630 Subject: [PATCH 3/3] add paymal and dinga with account no --- app/assets/stylesheets/origami.scss | 8 + .../origami/customers_controller.rb | 29 +- app/controllers/origami/dinga_controller.rb | 177 ++++++----- app/controllers/origami/paymal_controller.rb | 154 +++++----- app/models/sale_payment.rb | 34 +- app/views/origami/dinga/index.html.erb | 290 ++++++++++++++++-- app/views/origami/paymal/index.html.erb | 180 ++++++----- config/routes.rb | 1 + 8 files changed, 585 insertions(+), 288 deletions(-) diff --git a/app/assets/stylesheets/origami.scss b/app/assets/stylesheets/origami.scss index 601b8f89..1de250a3 100755 --- a/app/assets/stylesheets/origami.scss +++ b/app/assets/stylesheets/origami.scss @@ -417,6 +417,14 @@ i.logout_icon{ #is_memberModal .btn { width: 80%; } + +#is_paymemberModal .modal-body { + height: 150px !important; +} + +#is_paymemberModal .btn { + width: 80%; +} /* End Is Member Modal */ /* Start iframe */ diff --git a/app/controllers/origami/customers_controller.rb b/app/controllers/origami/customers_controller.rb index 70e5260f..fefb973e 100755 --- a/app/controllers/origami/customers_controller.rb +++ b/app/controllers/origami/customers_controller.rb @@ -144,5 +144,32 @@ class Origami::CustomersController < BaseOrigamiController render json: JSON.generate({:status => false, :error_message => "Record not found"}) end end - + + def send_account + amount = params[:amount] + account_no = params[:account_no] + receipt_no = params[:receipt_no] + sale = Sale.find_by_receipt_no(receipt_no) + @out = [] + action_by = current_user.id + 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 = nil + 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_data(url,membership_setting.auth_token,merchant_uid,auth_token,account_no,amount,receipt_no) + if membership_data["status"]==true + remark = "Payment by account no Receipt No #{sale.receipt_no} | Sale ID #{sale.sale_id} | Transaction ref: #{membership_data[:transaction_ref]} | Reload amount #{membership_data[:reload_amount]} | Old Balance Amount #{membership_data[:old_balance_amount]} | DateTime : #{membership_data[:date]}" + sale_audit = SaleAudit.record_audit_for_edit(sale.sale_id,sale.cashier_id, action_by,remark,"PAYBYACCOUNT" ) + else + remark = "Payment by account no Receipt No #{sale.receipt_no} | Sale ID #{sale.sale_id} | Remark : #{membership_data[:message]}" + sale_audit = SaleAudit.record_audit_for_edit(sale.sale_id,sale.cashier_id, action_by,remark,"PAYBYACCOUNT" ) + end + @out = membership_data + end + end + end end diff --git a/app/controllers/origami/dinga_controller.rb b/app/controllers/origami/dinga_controller.rb index 1b3c9ca2..448b39dd 100644 --- a/app/controllers/origami/dinga_controller.rb +++ b/app/controllers/origami/dinga_controller.rb @@ -1,102 +1,97 @@ class Origami::DingaController < BaseOrigamiController - def index - @sale_id = params[:sale_id] - payment_method = params[:payment_method] - @cashier_type = params[:type] - @membership_rebate_balance=0 - sale_data = Sale.find_by_sale_id(@sale_id) + def index + @sale_id = params[:sale_id] + payment_method = params[:payment_method] + @cashier_type = params[:type] + @membership_rebate_balance=0 + sale_data = Sale.find_by_sale_id(@sale_id) + @receipt_no = sale_data.receipt_no + @shop = Shop.first + # 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 + @rounding_adj = sale_data.rounding_adjustment - @shop = Shop.first - # 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 - @rounding_adj = sale_data.rounding_adjustment - - @dingacount = 0 - others = 0 - sale_data.sale_payments.each do |sale_payment| + @payparcount = 0 + others = 0 + sale_data.sale_payments.each do |sale_payment| if sale_payment.payment_method == "dinga" - @dingacount = @dingacount + sale_payment.payment_amount + @payparcount = @payparcount + sale_payment.payment_amount else others = others + sale_payment.payment_amount end - end - @redeem_prices = sale_data.grand_total - @dingacount -others + end + @payment_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("dinga_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_dinga_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 = nil + 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 - - def create - sale_id = params[:sale_id] - @cashier_type = params[:type] - redeem_amount = params[:redeem_amount] - membership_id = params[:membership_id] - payment_method = "dinga" - if(Sale.exists?(sale_id)) - saleObj = Sale.find(sale_id) - shop_details = Shop.first - - # rounding adjustment - 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 - - sale_payment = SalePayment.new - status,msg =sale_payment.process_payment(saleObj, @user, redeem_amount,payment_method) - if status == true - @out = true, "Success!" - else - @out =false, "Please try again payment!" - end - else - @out = false, "There has no sale record!" - end - - 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 + +def create + cash = params[:payment_amount] + sale_id = params[:sale_id] + transaction_ref = params[:transaction_ref] + if(Sale.exists?(sale_id)) + saleObj = Sale.find(sale_id) + shop_details = Shop.first + # rounding adjustment + # 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 + + # saleObj = Sale.find(sale_id) + sale_payment = SalePayment.new + status, @sale = sale_payment.process_payment(saleObj, @user, cash, "dinga",transaction_ref) + if status == true + @out = true, "Success!" + else + @out =false, "Please try again payment!" + end + end + end + end diff --git a/app/controllers/origami/paymal_controller.rb b/app/controllers/origami/paymal_controller.rb index a72a28ec..65af0c3b 100644 --- a/app/controllers/origami/paymal_controller.rb +++ b/app/controllers/origami/paymal_controller.rb @@ -1,80 +1,82 @@ class Origami::PaymalController < BaseOrigamiController - def index - @sale_id = params[:sale_id] - payment_method = params[:payment_method] - @cashier_type = params[:type] - @membership_rebate_balance=0 - sale_data = Sale.find_by_sale_id(@sale_id) + def index + @sale_id = params[:sale_id] + payment_method = params[:payment_method] + @cashier_type = params[:type] + @membership_rebate_balance=0 + sale_data = Sale.find_by_sale_id(@sale_id) + @receipt_no = sale_data.receipt_no + @shop = Shop.first + # 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 + @rounding_adj = sale_data.rounding_adjustment - @shop = Shop.first - # 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 - @rounding_adj = sale_data.rounding_adjustment - - @payparcount = 0 - others = 0 - sale_data.sale_payments.each do |sale_payment| + @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 - @payment_prices = sale_data.grand_total - @payparcount -others + end + @payment_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 = nil - 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 = nil + 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 + else + @out = false, 0 + end + else + @out = false, 0 end - def create - cash = params[:payment_amount] - sale_id = params[:sale_id] - if(Sale.exists?(sale_id)) - saleObj = Sale.find(sale_id) - shop_details = Shop.first - + else + @out = false, 0 + end + else + @out = false, 0 + end + @out = false, 0 +end + +def create + cash = params[:payment_amount] + sale_id = params[:sale_id] + transaction_ref = params[:transaction_ref] + if(Sale.exists?(sale_id)) + saleObj = Sale.find(sale_id) + shop_details = Shop.first + # rounding adjustment # if shop_details.is_rounding_adj # new_total = Sale.get_rounding_adjustment(saleObj.grand_total) @@ -84,18 +86,12 @@ class Origami::PaymalController < BaseOrigamiController # saleObj = Sale.find(sale_id) sale_payment = SalePayment.new - status, @sale = sale_payment.process_payment(saleObj, @user, cash, "paymal") - if status == true - @out = true, "Success!" - else - @out =false, "Please try again payment!" - end - end - end - - #Shop Name in Navbor - helper_method :shop_detail - def shop_detail - @shop = Shop.first - end + status, @sale = sale_payment.process_payment(saleObj, @user, cash, "paymal",transaction_ref) + if status == true + @out = true, "Success!" + else + @out =false, "Please try again payment!" + end + end + end end diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 035bb792..201a1b57 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -103,6 +103,31 @@ class SalePayment < ApplicationRecord rescue OpenURI::HTTPError response = { status: false} + rescue SocketError + response = { status: false} + end + Rails.logger.debug "Get Paypar Account " + Rails.logger.debug response.to_json + return response + end + + def self.get_paypar_account_data(url,token,merchant_uid,auth_token,account_no,amount,receipt_no) + # Control for Paypar Cloud + begin + response = HTTParty.get(url, + :body => { merchant_uid:merchant_uid,auth_token:auth_token,receipt_no: receipt_no, + account_no: account_no, amount: amount}.to_json, + :headers => { + 'Content-Type' => 'application/json', + 'Accept' => 'application/json; version=3' + }, :timeout => 10 + ) + rescue Net::OpenTimeout + response = { status: false } + + rescue OpenURI::HTTPError + response = { status: false} + rescue SocketError response = { status: false} end @@ -378,7 +403,7 @@ class SalePayment < ApplicationRecord self.payment_amount = self.received_amount self.payment_reference = self.voucher_no self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f - self.payment_status = "pending" + self.payment_status = "paid" payment_method = self.save! SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid') sale_update_payment_status(self.received_amount.to_f) @@ -410,10 +435,10 @@ class SalePayment < ApplicationRecord #Next time - validate if the vochure number is valid - within customer_data = Customer.find_by_customer_id(self.sale.customer_id) membership_setting = MembershipSetting.find_by_membership_type("paypar_url") - membership_data = SalePayment.redeem(membership_setting.gateway_url,membership_setting.auth_token,customer_data.membership_id,self.received_amount,self.sale.sale_id) + membership_data = SalePayment.create_payment(membership_setting.gateway_url,membership_setting.auth_token,customer_data.membership_id,self.received_amount,self.sale.sale_id) #record an payment in sale-audit - remark = "#{membership_data} Redeem- for Customer #{self.sale.customer_id} Sale Id [#{self.sale.sale_id}]| pay amount -> #{self.received_amount} " + remark = "#{membership_data} Dinga Payment- for Customer #{self.sale.customer_id} Sale Id [#{self.sale.sale_id}]| pay amount -> #{self.received_amount} " sale_audit = SaleAudit.record_paymal(self.sale.sale_id, remark, 1) if membership_data["status"]==true @@ -421,7 +446,7 @@ class SalePayment < ApplicationRecord self.payment_amount = self.received_amount self.payment_reference = self.voucher_no self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f - self.payment_status = "pending" + self.payment_status = "paid" payment_method = self.save! SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid') sale_update_payment_status(self.received_amount.to_f) @@ -429,6 +454,7 @@ class SalePayment < ApplicationRecord else sale_update_payment_status(0) end + return payment_status end diff --git a/app/views/origami/dinga/index.html.erb b/app/views/origami/dinga/index.html.erb index 1b35710f..6a4fc12b 100644 --- a/app/views/origami/dinga/index.html.erb +++ b/app/views/origami/dinga/index.html.erb @@ -15,41 +15,41 @@
- - <%@redeem_prices = @redeem_prices +@rounding_adj%> - + + <%@payment_prices = @payment_prices +@rounding_adj%> +

- <% if @dingacount > 0 %> + <% if @payparcount > 0 %>
- - + +

<% end %>
- +

- +
0.0

- +

You can rebate upto <%= @payment_prices %>

-->
@@ -92,7 +92,7 @@
10000
-
Pay
+
Pay
@@ -106,15 +106,43 @@ + + + + diff --git a/app/views/origami/paymal/index.html.erb b/app/views/origami/paymal/index.html.erb index bbbbbafa..d92f162a 100644 --- a/app/views/origami/paymal/index.html.erb +++ b/app/views/origami/paymal/index.html.erb @@ -13,6 +13,7 @@
+
@@ -108,11 +109,12 @@
-