Class: Pay::Charge
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.find_by_processor_and_id(processor, processor_id) ⇒ Object
38
39
40
|
# File 'app/models/pay/charge.rb', line 38
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
63
64
65
|
# File 'app/models/pay/charge.rb', line 63
def amount_refunded_with_currency
Pay::Currency.format(amount_refunded, currency: currency)
end
|
#amount_with_currency ⇒ Object
59
60
61
|
# File 'app/models/pay/charge.rb', line 59
def amount_with_currency
Pay::Currency.format(amount, currency: currency)
end
|
#charged_to ⇒ Object
67
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
|
# File 'app/models/pay/charge.rb', line 67
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
51
52
53
|
# File 'app/models/pay/charge.rb', line 51
def full_refund?
refunded? && amount == amount_refunded
end
|
#partial_refund? ⇒ Boolean
55
56
57
|
# File 'app/models/pay/charge.rb', line 55
def partial_refund?
refunded? && !full_refund?
end
|
#refunded? ⇒ Boolean
47
48
49
|
# File 'app/models/pay/charge.rb', line 47
def refunded?
amount_refunded.to_i > 0
end
|
#sync!(**options) ⇒ Object
42
43
44
45
|
# File 'app/models/pay/charge.rb', line 42
def sync!(**options)
self.class.sync(processor_id, **options)
reload
end
|