loan_creator 0.6.3.1 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/loan_creator/bullet.rb +14 -12
- data/lib/loan_creator/common.rb +32 -27
- data/lib/loan_creator/term.rb +5 -2
- data/lib/loan_creator/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2cca09d7b818ee423c142ca692301a01963982ff2b003c65b8097f2972648fa5
|
4
|
+
data.tar.gz: ba3169e453b3dcd7dbab5f5ce543fbc03c6744e87425adfdb12ad8bfdbf102b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a40a97895eacab077be8a4a8ca414fda3a026bb6aac721ca35e03891d24ea6c58f44cd6a68e875860ff660a8b418692ad88e00d89b0e6c16842006f99330cae7
|
7
|
+
data.tar.gz: 833292dfdfabe53174a6c65b9509df02060c72c09bfa67c08e8e73535ed1e413e335269d5a073ad5951a76cc310b5eb2f53e138053312d6be8622ad096e3309e
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
v0.7.0
|
2
|
+
-------------------------
|
3
|
+
|
4
|
+
- change `capitalized_interests` for `capitalized_interests_beginning_of_period`
|
5
|
+
and `capitalized_interests_end_of_period` in `LoanCreator::Term`
|
6
|
+
- add `capitalized_interests` in `:inital_values` for `LoanCreator::Bullet` loans
|
7
|
+
|
1
8
|
v0.6.2
|
2
9
|
-------------------------
|
3
10
|
|
data/lib/loan_creator/bullet.rb
CHANGED
@@ -7,7 +7,7 @@ module LoanCreator
|
|
7
7
|
reset_current_term
|
8
8
|
@crd_beginning_of_period = amount
|
9
9
|
@crd_end_of_period = amount
|
10
|
-
(duration_in_periods - 1).times { |period| compute_term(timetable
|
10
|
+
(duration_in_periods - 1).times { |period| compute_term(timetable) }
|
11
11
|
compute_last_term
|
12
12
|
timetable << current_term
|
13
13
|
timetable
|
@@ -16,21 +16,23 @@ module LoanCreator
|
|
16
16
|
private
|
17
17
|
|
18
18
|
def compute_last_term
|
19
|
-
@crd_end_of_period
|
20
|
-
@
|
21
|
-
@
|
22
|
-
@
|
23
|
-
@
|
24
|
-
@
|
25
|
-
@
|
19
|
+
@crd_end_of_period = bigd('0')
|
20
|
+
@capitalized_interests_beginning_of_period = @capitalized_interests_end_of_period
|
21
|
+
@period_interests = @capitalized_interests_end_of_period + compute_capitalized_interests
|
22
|
+
@capitalized_interests_end_of_period = 0
|
23
|
+
@period_capital = @crd_beginning_of_period
|
24
|
+
@total_paid_capital_end_of_period = @period_capital
|
25
|
+
@total_paid_interests_end_of_period = @period_interests
|
26
|
+
@period_amount_to_pay = @period_capital + @period_interests
|
26
27
|
end
|
27
28
|
|
28
|
-
def compute_capitalized_interests
|
29
|
-
amount.mult(
|
29
|
+
def compute_capitalized_interests
|
30
|
+
(amount + @capitalized_interests_beginning_of_period).mult(periodic_interests_rate, BIG_DECIMAL_DIGITS)
|
30
31
|
end
|
31
32
|
|
32
|
-
def compute_term(timetable
|
33
|
-
@
|
33
|
+
def compute_term(timetable)
|
34
|
+
@capitalized_interests_beginning_of_period = @capitalized_interests_end_of_period
|
35
|
+
@capitalized_interests_end_of_period += compute_capitalized_interests
|
34
36
|
timetable << current_term
|
35
37
|
end
|
36
38
|
end
|
data/lib/loan_creator/common.rb
CHANGED
@@ -110,40 +110,45 @@ module LoanCreator
|
|
110
110
|
(@total_paid_capital_end_of_period = bigd(initial_values[:paid_capital]))
|
111
111
|
(@total_paid_interests_end_of_period = bigd(initial_values[:paid_interests]))
|
112
112
|
(@accrued_delta_interests = bigd(initial_values[:accrued_delta_interests]))
|
113
|
+
if self.is_a?(LoanCreator::Bullet)
|
114
|
+
(@capitalized_interests_beginning_of_period = bigd(initial_values[:capitalized_interests] || 0))
|
115
|
+
end
|
113
116
|
end
|
114
117
|
|
115
118
|
def reset_current_term
|
116
|
-
@
|
117
|
-
@
|
118
|
-
@
|
119
|
-
@
|
120
|
-
@
|
121
|
-
@
|
122
|
-
@
|
123
|
-
@
|
124
|
-
@
|
125
|
-
@
|
126
|
-
@
|
127
|
-
@
|
128
|
-
@
|
119
|
+
@accrued_delta_interests ||= bigd('0')
|
120
|
+
@total_paid_capital_end_of_period ||= bigd('0')
|
121
|
+
@total_paid_interests_end_of_period ||= bigd('0')
|
122
|
+
@capitalized_interests_beginning_of_period ||= bigd('0')
|
123
|
+
@crd_beginning_of_period = bigd('0')
|
124
|
+
@crd_end_of_period = bigd('0')
|
125
|
+
@period_theoric_interests = bigd('0')
|
126
|
+
@capitalized_interests_end_of_period = @capitalized_interests_beginning_of_period
|
127
|
+
@delta_interests = bigd('0')
|
128
|
+
@amount_to_add = bigd('0')
|
129
|
+
@period_interests = bigd('0')
|
130
|
+
@period_capital = bigd('0')
|
131
|
+
@period_amount_to_pay = bigd('0')
|
132
|
+
@due_on = nil
|
129
133
|
end
|
130
134
|
|
131
135
|
def current_term
|
132
136
|
LoanCreator::Term.new(
|
133
|
-
crd_beginning_of_period:
|
134
|
-
crd_end_of_period:
|
135
|
-
period_theoric_interests:
|
136
|
-
delta_interests:
|
137
|
-
accrued_delta_interests:
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
137
|
+
crd_beginning_of_period: @crd_beginning_of_period,
|
138
|
+
crd_end_of_period: @crd_end_of_period,
|
139
|
+
period_theoric_interests: @period_theoric_interests,
|
140
|
+
delta_interests: @delta_interests,
|
141
|
+
accrued_delta_interests: @accrued_delta_interests,
|
142
|
+
capitalized_interests_beginning_of_period: @capitalized_interests_beginning_of_period,
|
143
|
+
capitalized_interests_end_of_period: @capitalized_interests_end_of_period,
|
144
|
+
amount_to_add: @amount_to_add,
|
145
|
+
period_interests: @period_interests,
|
146
|
+
period_capital: @period_capital,
|
147
|
+
total_paid_capital_end_of_period: @total_paid_capital_end_of_period,
|
148
|
+
total_paid_interests_end_of_period: @total_paid_interests_end_of_period,
|
149
|
+
period_amount_to_pay: @period_amount_to_pay,
|
150
|
+
due_on: @due_on,
|
151
|
+
index: compute_index
|
147
152
|
)
|
148
153
|
end
|
149
154
|
|
data/lib/loan_creator/term.rb
CHANGED
@@ -17,8 +17,11 @@ module LoanCreator
|
|
17
17
|
# Accrued interests' delta
|
18
18
|
:accrued_delta_interests,
|
19
19
|
|
20
|
-
# Capitalized interests (Bullet only)
|
21
|
-
:
|
20
|
+
# Capitalized interests at the beginning of the term (Bullet only)
|
21
|
+
:capitalized_interests_beginning_of_period,
|
22
|
+
|
23
|
+
# Capitalized interests at the end of the term (Bullet only)
|
24
|
+
:capitalized_interests_end_of_period,
|
22
25
|
|
23
26
|
# Adjustment of -0.01, 0 or +0.01 cent depending on accrued_delta_interests
|
24
27
|
:amount_to_add,
|
data/lib/loan_creator/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: loan_creator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- thibaulth
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: exe
|
14
14
|
cert_chain: []
|
15
|
-
date: 2021-01-
|
15
|
+
date: 2021-01-06 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: bundler
|