286 lines
8.6 KiB
Ruby
286 lines
8.6 KiB
Ruby
# -*- encoding : utf-8 -*-
|
|
|
|
class Public::SponsorshipAnimalsController < ApplicationController
|
|
layout "public"
|
|
|
|
skip_before_filter :verify_authenticity_token, :only => [:payplug_ipn]
|
|
|
|
def index
|
|
@sponsorship_animals = SponsorshipAnimal.all
|
|
|
|
|
|
end
|
|
|
|
def show
|
|
@sponsorship_animal = SponsorshipAnimal.find(params[:id])
|
|
|
|
|
|
@donator_transaction = DonatorTransaction.new(:recurrent => false)
|
|
|
|
@donator_transaction.particular_bill = Particular.new(:particular_type => "facturation", :skip_validation => true)
|
|
|
|
transaction_item = TransactionItem.new(:amount => 50)
|
|
transaction_item.transaction_content = TransactionSponsorship.new(:sponsorship_animal_id => @sponsorship_animal.id)
|
|
|
|
@donator_transaction.transaction_items << transaction_item
|
|
|
|
|
|
end
|
|
|
|
|
|
def donate_save
|
|
@donator_transaction = DonatorTransaction.new(params.require(:donator_transaction).permit!)
|
|
|
|
@sponsorship_animal = @donator_transaction.transaction_items[0].transaction_content.sponsorship_animal
|
|
|
|
@donator_transaction.particular_idem = true
|
|
|
|
#@donator_transaction.particular_bill = Particular.new(:particular_type => "facturation", :skip_validation => true)
|
|
|
|
@donator_transaction.particular_send = Particular.new(:particular_type => "expedition", :skip_validation => true)
|
|
|
|
@donator_transaction.tr_payment = TrPayment.new()
|
|
@donator_transaction.particular_bill.skip_validation = true
|
|
#@donator_transaction.particular_bill.validate_email = true
|
|
|
|
if @donator_transaction.save
|
|
|
|
@donator_transaction = DonatorTransaction.find(@donator_transaction.id)
|
|
@donator_transaction.particular_bill.skip_validation = false
|
|
|
|
redirect_to particulars_public_sponsorship_animal_path(@donator_transaction.id)
|
|
else
|
|
render :action => :show
|
|
end
|
|
|
|
|
|
end
|
|
|
|
def particulars
|
|
@donator_transaction = DonatorTransaction.find(params[:id])
|
|
@donator_transaction.particular_bill.skip_validation = false
|
|
@sponsorship_animal = @donator_transaction.transaction_items[0].transaction_content.sponsorship_animal
|
|
|
|
|
|
end
|
|
|
|
def particulars_save
|
|
@donator_transaction = DonatorTransaction.find(params[:id])
|
|
@sponsorship_animal = @donator_transaction.transaction_items[0].transaction_content.sponsorship_animal
|
|
|
|
|
|
@donator_transaction.particular_bill.skip_validation = false
|
|
|
|
if @donator_transaction.update_attributes(params.require(:donator_transaction).permit!)
|
|
redirect_to select_payment_public_sponsorship_animal_path(@donator_transaction.id)
|
|
|
|
|
|
|
|
else
|
|
|
|
render :action => :particulars
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
def select_payment
|
|
@donator_transaction = DonatorTransaction.find(params[:id])
|
|
@sponsorship_animal = @donator_transaction.transaction_items[0].transaction_content.sponsorship_animal
|
|
|
|
if @donator_transaction.recurrent == true
|
|
@donator_transaction.tr_payment.tr_payment_type_id = 5
|
|
else
|
|
@donator_transaction.tr_payment.tr_payment_type_id = 3
|
|
end
|
|
|
|
end
|
|
|
|
def select_payment_save
|
|
@donator_transaction = DonatorTransaction.find(params[:id])
|
|
@sponsorship_animal = @donator_transaction.transaction_items[0].transaction_content.sponsorship_animal
|
|
|
|
|
|
@donator_transaction.particular_bill.skip_validation = false
|
|
if @donator_transaction.update_attributes(params.require(:donator_transaction).permit!)
|
|
if @donator_transaction.tr_payment_type and @donator_transaction.tr_payment_type_id == 3
|
|
redirect_to paid_by_payplug_public_sponsorship_animal_path(@donator_transaction.id)
|
|
else
|
|
if @donator_transaction.tr_payment_type_id == 5
|
|
SponsorshipAnimalMails.confirmation_pa(@donator_transaction).deliver
|
|
|
|
elsif @donator_transaction.tr_payment_type_id == 1
|
|
SponsorshipAnimalMails.confirmation_cheque(@donator_transaction).deliver
|
|
end
|
|
|
|
redirect_to payment_instructions_public_sponsorship_animal_path(@donator_transaction.id)
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
render :action => :particulars
|
|
|
|
end
|
|
|
|
end
|
|
def payment_instructions
|
|
@donator_transaction = DonatorTransaction.find(params[:id])
|
|
@sponsorship_animal = @donator_transaction.transaction_items[0].transaction_content.sponsorship_animal
|
|
|
|
|
|
end
|
|
|
|
def edit
|
|
@donator_transaction = DonatorTransaction.find(params[:id])
|
|
@sponsorship_animal = @donator_transaction.transaction_items[0].transaction_content.sponsorship_animal
|
|
|
|
|
|
end
|
|
|
|
def update
|
|
@donator_transaction = DonatorTransaction.find(params[:id])
|
|
@sponsorship_animal = @donator_transaction.transaction_items[0].transaction_content.sponsorship_animal
|
|
|
|
|
|
#@donator_transaction.particular_bill.validate_email =true
|
|
if @donator_transaction.update_attributes(params.require(:donator_transaction).permit!)
|
|
|
|
|
|
redirect_to particulars_public_sponsorship_animal_path(@donator_transaction.id)
|
|
|
|
else
|
|
render :action => :edit
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
def paid_by_payplug
|
|
@donator_transaction = DonatorTransaction.find(params[:id])
|
|
@sponsorship_animal = @donator_transaction.transaction_items[0].transaction_content.sponsorship_animal
|
|
|
|
if @donator_transaction.paid
|
|
redirect_to select_payment_public_donator_transaction_path(@donator_transaction.id)
|
|
else
|
|
|
|
options = {
|
|
:amount => @donator_transaction.total,
|
|
:email => @donator_transaction.particular_bill.email ,
|
|
:first_name => @donator_transaction.particular_bill.firstname,
|
|
:last_name => @donator_transaction.particular_bill.name,
|
|
:return_url => "http://#{HOSTNAME}"+paid_by_payplug_confirm_public_sponsorship_animal_path(@donator_transaction.id),
|
|
:cancel_url => "http://#{HOSTNAME}"+select_payment_public_sponsorship_animal_path(@donator_transaction.id),
|
|
:notification_url => "http://#{HOSTNAME}"+payplug_ipn_public_sponsorship_animals_path(),
|
|
:donate_transaction_id => @donator_transaction.id,
|
|
:save_card => @donator_transaction.recurrent,
|
|
|
|
}
|
|
|
|
|
|
payplug_init_payement(options)
|
|
|
|
response = @new_payplug_payment
|
|
|
|
@donator_transaction.tr_payment.payplug_payment_id = response["id"]
|
|
@donator_transaction.save
|
|
|
|
redirect_to response["hosted_payment"]["payment_url"]
|
|
|
|
|
|
#-H "Authorization: Bearer sk_live_43b7e007298f57f7aedee32800a52301"
|
|
|
|
|
|
|
|
#render :inline => "ok"
|
|
end
|
|
|
|
end
|
|
|
|
def paid_by_payplug_confirm
|
|
@donator_transaction = DonatorTransaction.find(params[:id])
|
|
@sponsorship_animal = @donator_transaction.transaction_items[0].transaction_content.sponsorship_animal
|
|
|
|
|
|
end
|
|
|
|
def paid_by_payplug_confirm
|
|
|
|
|
|
@donator_transaction = DonatorTransaction.find(params[:id])
|
|
@sponsorship_animal = @donator_transaction.transaction_items[0].transaction_content.sponsorship_animal
|
|
|
|
|
|
payplug_retrieve_payement @donator_transaction.tr_payment.payplug_payment_id
|
|
|
|
if @response and @response["is_paid"] == true# || response["is_paid"] == "true"
|
|
@paid = true
|
|
else
|
|
redirect_to select_payment_public_sponsorship_animal_path(@donator_transaction.id, :paid_fail => 1)
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
def payplug_ipn
|
|
|
|
|
|
payplug_retrieve_payement(params[:id])
|
|
|
|
|
|
response = @response
|
|
|
|
#redirect_to response["hosted_payment"]["payment_url"]
|
|
puts response
|
|
puts "TESt"
|
|
puts response["metadata"]["donate_transaction_id"]
|
|
@donator_transaction = DonatorTransaction.find(response["metadata"]["donate_transaction_id"].to_i)
|
|
@tr_payment = @donator_transaction.tr_payment
|
|
|
|
@tr_payment.tr_payment_type_id = 3
|
|
@tr_payment.amount = response["amount"].to_i*0.1
|
|
@tr_payment.payplug_payment_id = response["id"]
|
|
|
|
if response["card"]
|
|
@tr_payment.payplug_card_id = response["card"]["id"]
|
|
@tr_payment.payplug_card_expiry_month = response["card"]["exp_month"]
|
|
@tr_payment.payplug_card_expiry_year = response["card"]["exp_year"]
|
|
@tr_payment.payplug_card_last_number = response["card"]["last4"]
|
|
|
|
end
|
|
|
|
if response["is_paid"] == true || response["is_paid"] == "true"
|
|
|
|
@tr_payment.paid_at = Time.now
|
|
@donator_transaction.paid = true
|
|
|
|
if @donator_transaction.recurrent
|
|
SponsorshipAnimalMails.confirmation_cb_rec(@donator_transaction).deliver
|
|
else
|
|
SponsorshipAnimalMails.confirmation_cb(@donator_transaction).deliver
|
|
end
|
|
|
|
else
|
|
@donator_transaction.paid = false
|
|
end
|
|
|
|
@donator_transaction.save
|
|
@tr_payment.save
|
|
|
|
|
|
|
|
|
|
render :inline => "ok"
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|