Skip to content

Commit

Permalink
Merge pull request #113 from sul-dlss/jgreben-patch
Browse files Browse the repository at this point in the history
Check for matching day before or after payment in folio
  • Loading branch information
jgreben authored Feb 7, 2024
2 parents 9289867 + 1cd6023 commit d34c99b
Showing 1 changed file with 12 additions and 9 deletions.
21 changes: 12 additions & 9 deletions cyber_source/download_payment_batch_detail_report.rb
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ def main
if index > 1
user_id = batch_detail.split(',')[4]
paid = batch_detail.split(',')[8]
paydate = batch_detail.split(',')[12]&.chomp
batch_date = batch_detail.split(',')[2]
transaction_date = batch_detail.split(',')[12]&.chomp

begin
accounts = folio_client.get('/accounts', { query: "userId==#{user_id}" })
Expand All @@ -67,13 +68,13 @@ def main
payments = []

accounts['accounts'].each do |a|
next unless is_a_payment?(a, paydate)
next unless is_a_payment?(a, batch_date, transaction_date)

payments << a['amount'].to_f
end

accounts['accounts'].each do |account|
next unless is_a_payment?(account, paydate)
next unless is_a_payment?(account, batch_date, transaction_date)

puts user_id
puts "TOTAL PAYMENTS: #{payments.sum}"
Expand All @@ -82,7 +83,7 @@ def main
if (payments.sum == paid.to_f)

payload = {
paydate: Date.parse(paydate),
transaction_date: Date.parse(transaction_date),
user_id: user_id,
folio_payment_id: account['id'],
library: account['feeFineOwner'],
Expand All @@ -99,7 +100,7 @@ def main
puts credits
sleep(ENV. fetch('SLEEP', 2)&.to_i)
end
credits.any? && CSV.open('files/credits.csv', 'w+') do |csv|
credits.any? && CSV.open('files/credits.csv', 'a') do |csv|
csv << credits.first.keys
credits.each do |credit|
csv << credit.values
Expand All @@ -110,11 +111,13 @@ def main
puts e.backtrace
end

def is_a_payment?(account, paydate)
payment_date = Date.parse(paydate)
def is_a_payment?(account, batch_date, transaction_date)
tx_date = Date.parse(transaction_date)
bx_date = Date.parse(batch_date)
dates = [tx_date - 1, tx_date, tx_date + 1, bx_date - 1, bx_date, bx_date + 1]

(created_date(account) == payment_date || updated_date(account) == payment_date) &&
(account['paymentStatus']['name'] == 'Paid fully')
(dates.include?(created_date(account)) || dates.include?(updated_date(account))) &&
(account['paymentStatus']['name'] == 'Paid fully')
end

def created_date(account)
Expand Down

0 comments on commit d34c99b

Please sign in to comment.