Class: Pay::Charge
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.find_by_processor_and_id(processor, processor_id) ⇒ Object
39
40
41
|
# File 'app/models/pay/charge.rb', line 39
def self.find_by_processor_and_id(processor, processor_id)
joins(:customer).find_by(processor_id: processor_id, pay_customers: {processor: processor})
end
|
Instance Method Details
#amount_refunded_with_currency ⇒ Object
64
65
66
|
# File 'app/models/pay/charge.rb', line 64
def amount_refunded_with_currency
Pay::Currency.format(amount_refunded, currency: currency)
end
|
#amount_with_currency ⇒ Object
60
61
62
|
# File 'app/models/pay/charge.rb', line 60
def amount_with_currency
Pay::Currency.format(amount, currency: currency)
end
|
#charged_to ⇒ Object
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
# File 'app/models/pay/charge.rb', line 68
def charged_to
case payment_method_type
when "card"
"#{brand.titleize} (**** **** **** #{last4})"
when "paypal"
brand ||= "PayPal"
if email.present?
brand + " (#{email})"
else
brand
end
when "venmo"
"#{brand.titleize} #{username}"
when "us_bank_account"
"#{bank} #{last4}"
when "acss_debit"
"#{bank} #{last4}"
when "eps", "fpx", "ideal", "p24"
bank
when "au_becs_debit"
"BECS Debit #{last4}"
when "bacs_debit"
"Bacs Debit #{last4}"
when "sepa_debit"
"SEPA Debit #{last4}"
else
payment_method_type&.titleize
end
end
|
#full_refund? ⇒ Boolean
52
53
54
|
# File 'app/models/pay/charge.rb', line 52
def full_refund?
refunded? && amount == amount_refunded
end
|
#partial_refund? ⇒ Boolean
56
57
58
|
# File 'app/models/pay/charge.rb', line 56
def partial_refund?
refunded? && !full_refund?
end
|
#refunded? ⇒ Boolean
48
49
50
|
# File 'app/models/pay/charge.rb', line 48
def refunded?
amount_refunded.to_i > 0
end
|
#sync!(**options) ⇒ Object
43
44
45
46
|
# File 'app/models/pay/charge.rb', line 43
def sync!(**options)
self.class.sync(processor_id, **options)
reload
end
|