edit membership setting , otherpayment page

This commit is contained in:
Moe Su
2017-06-11 15:48:53 +06:30
parent 1d24099abc
commit 33cc576f1e
15 changed files with 248 additions and 215 deletions

View File

@@ -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/

View File

@@ -0,0 +1,3 @@
// Place all the styles related to the origami/redeem_payments controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

View File

@@ -0,0 +1,41 @@
class Origami::RedeemPaymentsController < BaseOrigamiController
def index
sale_id = params[:sale_id]
payment_method = params[:payment_method]
@membership_rebate_balance=0
sale_data = Sale.find_by_sale_id(sale_id)
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
@campaign_type_id =1
if !@membership_id.nil?
membership_setting = MembershipSetting.find_by_membership_type("paypar_url")
puts 'Hello Hello'
puts membership_setting.to_json
member_actions =MembershipAction.find_by_membership_type("get_account_balance")
puts member_actions.to_json
url = membership_setting.gateway_url.to_s + member_actions.gateway_url.to_s
puts url
membership_data = SalePayment.get_paypar_account(url,membership_setting.auth_token,@membership_id,@campaign_type_id)
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
@out = false, 0
end
end

View File

@@ -4,46 +4,7 @@ class Settings::MembershipActionsController < ApplicationController
# GET /settings/membership_actions
# GET /settings/membership_actions.json
def index
type = params[:type]
@sale_id = params[:sale_id]
if type.nil?
@settings_membership_actions = Settings::MembershipAction.all
else
membership_actions_data=Settings::MembershipAction.find_by_membership_type(type)
if !membership_actions_data.nil?
url = params[:gateway_url].to_s + membership_actions_data.gateway_url.to_s
puts url.to_json
sale_data = Sale.find_by_sale_id(@sale_id)
if sale_data.customer_id
customer_data= Customer.find_by_customer_id(sale_data.customer_id)
puts customer_data.to_json
@membership_id = customer_data.membership_id
@campaign_type_id =1
if !@membership_id.nil?
membership_setting = MembershipSetting.find_by_membership_type("paypar_url")
puts membership_setting
membership_data = SalePayment.get_paypar_account(url,membership_setting.auth_token,@membership_id,@campaign_type_id)
if membership_data["status"]==true
@membership_rebate_balance=membership_data["balance"]
@out = true, @membership_rebate_balance,@membership_id
else
@out = false, 0
end
else
@out = false, 0
end
else
@out =false, 0
end
# campaign_type_id=1
# get_account_data = MembershipAction.get_account_data(url)
else
@out = false, 0
end
render :json => @out.to_json
end
@settings_membership_actions = MembershipAction.all
end
# GET /settings/membership_actions/1
@@ -53,7 +14,7 @@ class Settings::MembershipActionsController < ApplicationController
# GET /settings/membership_actions/new
def new
@settings_membership_action = Settings::MembershipAction.new
@settings_membership_action = MembershipAction.new
end
# GET /settings/membership_actions/1/edit
@@ -63,11 +24,11 @@ class Settings::MembershipActionsController < ApplicationController
# POST /settings/membership_actions
# POST /settings/membership_actions.json
def create
@settings_membership_action = Settings::MembershipAction.new(settings_membership_action_params)
@settings_membership_action = MembershipAction.new(settings_membership_action_params)
respond_to do |format|
if @settings_membership_action.save
format.html { redirect_to @settings_membership_action, notice: 'Membership action was successfully created.' }
format.html { redirect_to settings_membership_actions_path, notice: 'Membership action was successfully created.' }
format.json { render :show, status: :created, location: @settings_membership_action }
else
format.html { render :new }
@@ -81,7 +42,7 @@ class Settings::MembershipActionsController < ApplicationController
def update
respond_to do |format|
if @settings_membership_action.update(settings_membership_action_params)
format.html { redirect_to @settings_membership_action, notice: 'Membership action was successfully updated.' }
format.html { redirect_to settings_membership_action_path, notice: 'Membership action was successfully updated.' }
format.json { render :show, status: :ok, location: @settings_membership_action }
else
format.html { render :edit }
@@ -103,11 +64,11 @@ class Settings::MembershipActionsController < ApplicationController
private
# Use callbacks to share common setup or constraints between actions.
def set_settings_membership_action
@settings_membership_action = Settings::MembershipAction.find(params[:id])
@settings_membership_action = MembershipAction.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def settings_membership_action_params
params.require(:settings_membership_action).permit(:membership_type, :is_active, :gateway_communication_type, :gateway_url, :auth_token, :merchant_account_id, :created_by, :additional_parameter)
params.require(:membership_action).permit(:membership_type, :is_active, :gateway_communication_type, :gateway_url, :auth_token, :merchant_account_id, :created_by, :additional_parameter)
end
end

View File

@@ -0,0 +1,2 @@
module Origami::RedeemPaymentsHelper
end

View File

@@ -1,2 +0,0 @@
class Settings::MembershipAction < ApplicationRecord
end

View File

@@ -4,174 +4,20 @@
<div class="card">
<% @payment_method_setting.each do |payment_method|%>
<div class="col-md-5">
<div class="col-md-12 long purple " id="<%= payment_method.payment_method%>" data-url="<%=payment_method.gateway_url%>" data-sale-id="<%= @sale_id%>"><%= payment_method.payment_method %></div>
<div class="col-md-12 long purple " id="redeem_payment" data-url="<%=payment_method.gateway_url%>" data-sale-id="<%= @sale_id%>"><%= payment_method.payment_method %></div>
</div>
<% end %>
</div>
</div>
<div class="col-lg-7 col-md-7 col-sm-7">
<div class="rebate-form" hidden="true">
<div class="row">
<div class="form-group col-lg-12 col-md-12 col-sm-12">
<label class="col-lg-4 col-md-4 col-sm-4">Valid Amount</label>
<input type="text" name="valid_amount" id="valid_amount" class="form-control col-lg-7 col-md-7 col-sm-7" readonly="" value="">
</div>
<hr>
</div>
<div class="row">
<div class="form-group col-lg-12 col-md-12 col-sm-12">
<label class="col-lg-4 col-md-4 col-sm-4">Used Amount</label>
<div id="used_amount" class="form-control col-lg-7 col-md-7 col-sm-7">0.0</div>
</div>
<hr>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number" data-value="1" data-type="num">1</div>
<div class="col-md-3 cashier_number" data-value="2" data-type="num">2</div>
<div class="col-md-3 cashier_number" data-value="3" data-type="num">3</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="1000" data-type="add">1000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number" data-value="4" data-type="num">4</div>
<div class="col-md-3 cashier_number" data-value="5" data-type="num">5</div>
<div class="col-md-3 cashier_number" data-value="6" data-type="num">6</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="5000" data-type="add">5000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number" data-value="7" data-type="num">7</div>
<div class="col-md-3 cashier_number" data-value="8" data-type="num">8</div>
<div class="col-md-3 cashier_number" data-value="9" data-type="num">9</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="10000" data-type="add">10000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number" data-value="0" data-type="num">0</div>
<div class="col-md-3 cashier_number" data-value="." data-type="num">.</div>
<div class="col-md-3 cashier_number" data-value="00" data-type="num">00</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="50000" data-type="add">50000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number"></div>
<div class="col-md-3 cashier_number">DEL</div>
<div class="col-md-3 cashier_number">CLR</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long purple" id="redeem" data-value="<%=@sale_id %>" data-member-value="<%= @membership_id %>">PAY</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
</div>
<script type="text/javascript">
$(document).on('click', '.cashier_number', function(event){
// event.stopPropagation();
// event.preventDefault();
// if(event.handled !== true) {
var original_value;
original_value = $('#used_amount').text();
$('#redeem_payment').click(function() {
sale_id = $(this).attr("data-sale-id");
window.location.href = '/origami/sale/'+ sale_id + "/payment/others_payment/redeem"
return false;
});
var input_value = $(this).attr("data-value");
var input_type = $(this).attr("data-type");
switch (input_type) {
case 'num':
if (original_value == "0.0"){
$('#used_amount').text(input_value);
}else{
$('#used_amount').append(input_value);
}
break;
case 'add':
var input_value = $(this).attr("data-value");
amount = parseInt(input_value) + parseInt(original_value);
$('#used_amount').html(amount);
break;
case 'clr':
$('#used_amount').html("0.0");
break;
}
// event.handled = true;
// } else {
// return false;
// }
});
$("#REDIMREBATE").click(function(){
$('.rebate-form').removeAttr("hidden");
gateway_url = $(this).attr("data-url");
sale_id = $(this).attr("data-sale-id");
$.ajax({
type: "GET",
url: "../../../../settings/membership_actions",
data: {type:"get_account_balance",gateway_url:gateway_url,sale_id:sale_id},
success: function(result){
$("#redeem").attr("data-member-value",result[2]);
$("#valid_amount").val(result[1]);
}
})
});
$("#redeem").click(function(){
valid_amount = $("#valid_amount").val();
sale = "<%=@sale_id %>";
membership_id = $(this).attr('data-member-value');
redeem_amount = parseInt($("#used_amount").text());
if(redeem_amount<=0){
alert(" Insufficient Amount!")
}else if(valid_amount< redeem_amount){
alert("Please type valid amount");
}else{
$.ajax({
type: "POST",
url: "<%=origami_paypar_payment_process_path%>",
data: {redeem_amount:redeem_amount,membership_id:membership_id,sale_id:sale_id},
success: function(result){
if(result.status == true){
window.location.href = '/origami/sale/'+ sale_id + "/payment"
}else{
alert(result.message);
}
}
})
}
});
</script>

View File

@@ -0,0 +1,157 @@
<div class="row">
<div class="col-lg-5 col-md-5 col-sm-3">
<div class="card">
<div class="rebate-form">
<div class="row">
<div class="form-group col-lg-12 col-md-12 col-sm-12">
<label class="col-lg-4 col-md-4 col-sm-4">Valid Amount</label>
<input type="text" name="valid_amount" id="valid_amount" class="form-control col-lg-7 col-md-7 col-sm-7" readonly="" value="<%=@membership_rebate_balance%>">
</div>
<hr>
</div>
<div class="row">
<div class="form-group col-lg-12 col-md-12 col-sm-12">
<label class="col-lg-4 col-md-4 col-sm-4">Used Amount</label>
<div id="used_amount" class="form-control col-lg-7 col-md-7 col-sm-7">0.0</div>
</div>
<hr>
</div>
</div>
</div>
</div>
<div class="col-lg-7 col-md-7 col-sm-7">
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number" data-value="1" data-type="num">1</div>
<div class="col-md-3 cashier_number" data-value="2" data-type="num">2</div>
<div class="col-md-3 cashier_number" data-value="3" data-type="num">3</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="1000" data-type="add">1000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number" data-value="4" data-type="num">4</div>
<div class="col-md-3 cashier_number" data-value="5" data-type="num">5</div>
<div class="col-md-3 cashier_number" data-value="6" data-type="num">6</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="5000" data-type="add">5000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number" data-value="7" data-type="num">7</div>
<div class="col-md-3 cashier_number" data-value="8" data-type="num">8</div>
<div class="col-md-3 cashier_number" data-value="9" data-type="num">9</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="10000" data-type="add">10000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number" data-value="0" data-type="num">0</div>
<div class="col-md-3 cashier_number" data-value="." data-type="num">.</div>
<div class="col-md-3 cashier_number" data-value="00" data-type="num">00</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long" data-value="50000" data-type="add">50000</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<div class="row">
<div class="col-md-3 cashier_number"></div>
<div class="col-md-3 cashier_number">DEL</div>
<div class="col-md-3 cashier_number">CLR</div>
</div>
</div>
<div class="col-md-5">
<div class="col-md-12 cashier_number long purple" id="redeem" data-value="<%=@sale_id %>" data-member-value="<%= @membership_id %>">PAY</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
</div>
<script type="text/javascript">
$(document).on('click', '.cashier_number', function(event){
// event.stopPropagation();
// event.preventDefault();
// if(event.handled !== true) {
var original_value;
original_value = $('#used_amount').text();
var input_value = $(this).attr("data-value");
var input_type = $(this).attr("data-type");
switch (input_type) {
case 'num':
if (original_value == "0.0"){
$('#used_amount').text(input_value);
}else{
$('#used_amount').append(input_value);
}
break;
case 'add':
var input_value = $(this).attr("data-value");
amount = parseInt(input_value) + parseInt(original_value);
$('#used_amount').html(amount);
break;
case 'clr':
$('#used_amount').html("0.0");
break;
}
// event.handled = true;
// } else {
// return false;
// }
});
$("#redeem").click(function(){
valid_amount = $("#valid_amount").val();
sale = "<%=@sale_id %>";
membership_id = $(this).attr('data-member-value');
redeem_amount = parseInt($("#used_amount").text());
if(redeem_amount<=0){
alert(" Insufficient Amount!")
}else if(valid_amount< redeem_amount){
alert("Please type valid amount");
}else{
$.ajax({
type: "POST",
url: "<%=origami_paypar_payment_process_path%>",
data: {redeem_amount:redeem_amount,membership_id:membership_id,sale_id:sale_id},
success: function(result){
if(result.status == true){
window.location.href = '/origami/sale/'+ sale_id + "/payment"
}else{
alert(result.message);
}
}
})
}
});
</script>

View File

@@ -1,4 +1,4 @@
<%= simple_form_for(@settings_membership_action) do |f| %>
<%= simple_form_for([:settings,@settings_membership_action]) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">

View File

@@ -2,5 +2,5 @@
<%= render 'form', settings_membership_action: @settings_membership_action %>
<%= link_to 'Show', @settings_membership_action %> |
<%= link_to 'Show', settings_membership_action_path(@settings_membership_action) %> |
<%= link_to 'Back', settings_membership_actions_path %>

View File

@@ -28,9 +28,9 @@
<td><%= settings_membership_action.merchant_account_id %></td>
<td><%= settings_membership_action.created_by %></td>
<td><%= settings_membership_action.additional_parameter %></td>
<td><%= link_to 'Show', settings_membership_action %></td>
<td><%= link_to 'Show', settings_membership_action_path(settings_membership_action) %></td>
<td><%= link_to 'Edit', edit_settings_membership_action_path(settings_membership_action) %></td>
<td><%= link_to 'Destroy', settings_membership_action, method: :delete, data: { confirm: 'Are you sure?' } %></td>
<td><%= link_to 'Destroy', settings_membership_action_path(settings_membership_action), method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>

View File

@@ -85,6 +85,7 @@ Rails.application.routes.draw do
post 'paypar_payment_process' => 'paypar_payments#create'
get 'sale/:sale_id/payment/credit_payment' => "credit_payments#index"
get 'sale/:sale_id/payment/others_payment' => "others_payments#index"
get 'sale/:sale_id/payment/others_payment/:payment_method' => "redeem_payments#index"
end

View File

@@ -1,7 +1,7 @@
class CreateSettingsMembershipActions < ActiveRecord::Migration[5.1]
class CreateMembershipActions < ActiveRecord::Migration[5.1]
def change
create_table :settings_membership_actions do |t|
t.string :membership_type
create_table :membership_actions do |t|
t.string :membership_type
t.boolean :is_active
t.string :gateway_communication_type
t.string :gateway_url
@@ -11,6 +11,7 @@ class CreateSettingsMembershipActions < ActiveRecord::Migration[5.1]
t.string :additional_parameter
t.timestamps
t.timestamps
end
end
end

View File

@@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe Origami::RedeemPaymentsController, type: :controller do
end

View File

@@ -0,0 +1,15 @@
require 'rails_helper'
# Specs in this file have access to a helper object that includes
# the Origami::RedeemPaymentsHelper. For example:
#
# describe Origami::RedeemPaymentsHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# expect(helper.concat_strings("this","that")).to eq("this that")
# end
# end
# end
RSpec.describe Origami::RedeemPaymentsHelper, type: :helper do
pending "add some examples to (or delete) #{__FILE__}"
end