loan_creator 0.6.3.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|