diff --git a/lib/customer_plan.rb b/lib/customer_plan.rb index f9f45b0b165a82ba44c3a7e7676254322a1eb56d..110a6ae081a0b89a616787d4b8a517977dbfe8d1 100644 --- a/lib/customer_plan.rb +++ b/lib/customer_plan.rb @@ -105,8 +105,8 @@ protected ] DB.exec(<<~SQL, params) INSERT INTO transactions - (customer_id, transaction_id, created_at, amount, note) - VALUES ($1, $2, LOCALTIMESTAMP, $3, $4) + (customer_id, transaction_id, created_at, settled_after, amount, note) + VALUES ($1, $2, LOCALTIMESTAMP, LOCALTIMESTAMP, $3, $4) SQL end diff --git a/lib/transaction.rb b/lib/transaction.rb index 3885ee10a1b8be2bbf25fb68431531686c5afbfe..2ad52aba9075801fb23429e34498d1b899d38f96 100644 --- a/lib/transaction.rb +++ b/lib/transaction.rb @@ -78,27 +78,36 @@ class Transaction "$#{'%.2f' % amount}#{plus if bonus.positive?}" end + def settled_after + @created_at + (90 * 24 * 60 * 60) + end + protected def insert_tx - params = [@customer_id, @transaction_id, @created_at, @amount] + params = [ + @customer_id, @transaction_id, @created_at, settled_after, @amount + ] DB.exec(<<~SQL, params) INSERT INTO transactions - (customer_id, transaction_id, created_at, amount, note) + (customer_id, transaction_id, created_at, settled_after, amount, note) VALUES - ($1, $2, $3, $4, 'Credit card payment') + ($1, $2, $3, $4, $5, 'Credit card payment') SQL end def insert_bonus return if bonus <= 0 - params = [@customer_id, "bonus_for_#{@transaction_id}", @created_at, bonus] + params = [ + @customer_id, "bonus_for_#{@transaction_id}", @created_at, + settled_after, bonus + ] DB.exec(<<~SQL, params) INSERT INTO transactions - (customer_id, transaction_id, created_at, amount, note) + (customer_id, transaction_id, created_at, settled_after, amount, note) VALUES - ($1, $2, $3, $4, 'Credit card payment bonus') + ($1, $2, $3, $4, $5, 'Credit card payment bonus') SQL end end diff --git a/test/test_transaction.rb b/test/test_transaction.rb index 69a4b0220f2573c34c157be566e88c9b3c7c7ccb..5bb348dd711ad245fa489364f3e3caad42535ab9 100644 --- a/test/test_transaction.rb +++ b/test/test_transaction.rb @@ -96,7 +96,7 @@ class TransactionTest < Minitest::Test EMPromise.resolve(nil), [ String, - ["customer", "transaction", Time.at(0), 12] + ["customer", "transaction", Time.at(0), Time.at(7776000), 12] ] ) Transaction.new(FAKE_BRAINTREE_TRANSACTION).insert.sync @@ -114,7 +114,7 @@ class TransactionTest < Minitest::Test EMPromise.resolve(nil), [ String, - ["customer", "transaction", Time.at(0), 100] + ["customer", "transaction", Time.at(0), Time.at(7776000), 100] ] ) Transaction::DB.expect( @@ -122,7 +122,7 @@ class TransactionTest < Minitest::Test EMPromise.resolve(nil), [ String, - ["customer", "bonus_for_transaction", Time.at(0), 3] + ["customer", "bonus_for_transaction", Time.at(0), Time.at(7776000), 3] ] ) tx = FAKE_BRAINTREE_TRANSACTION.dup