blend_spreadsheet_loan_generator 0.1.39 → 0.1.40
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36f54b0c351b2b367ae9742d235e2aaa484df2e16388935da8ca576aa405b862
|
4
|
+
data.tar.gz: f87380832034597138217d523984e200e45c3826433ad4e25d9addc03b344da8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2cfa0694a3f2ef0ca4fe5e85025e1f6912bc37c2667ff0fe872add54a85664f7868dc79d79c96fdf5a753485aa5685652f7f4af9499e06f417187e85448e5eed
|
7
|
+
data.tar.gz: 5dbd7beb01e12da8b58f6402769c0842b0929a61e04fefc93f427ba94b5ccc34d53b21517b2dad53b9f32eea6f620636d03638f000dafe76d787f927e72635ba
|
@@ -87,13 +87,17 @@ module BlendSpreadsheetLoanGenerator
|
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
90
|
-
def apply_formulas(worksheet
|
90
|
+
def apply_formulas(worksheet:, early_repayment?: true)
|
91
91
|
columns.each.with_index do |title, column|
|
92
92
|
worksheet[1, column + 1] = title
|
93
93
|
end
|
94
94
|
loan.duration.times do |line|
|
95
95
|
columns.each.with_index do |title, column|
|
96
|
-
|
96
|
+
if early_repayment && title == 'period_calculated_fees'
|
97
|
+
worksheet[line + 2, column + 1] = @formula.send("#{title}_formula", line: line + 2, early_repayment?: true)
|
98
|
+
else
|
99
|
+
worksheet[line + 2, column + 1] = @formula.send("#{title}_formula", line: line + 2)
|
100
|
+
end
|
97
101
|
end
|
98
102
|
end
|
99
103
|
end
|
@@ -127,7 +127,7 @@ module BlendSpreadsheetLoanGenerator
|
|
127
127
|
|
128
128
|
@formula = Formula.new(loan: loan)
|
129
129
|
|
130
|
-
apply_formulas(worksheet: worksheet)
|
130
|
+
apply_formulas(worksheet: worksheet, early_repayment?: true)
|
131
131
|
|
132
132
|
worksheet[2, columns.index('remaining_capital_start') + 1] =
|
133
133
|
excel_float(values[last_paid_line + 1][:remaining_capital_start])
|
@@ -168,15 +168,23 @@ module BlendSpreadsheetLoanGenerator
|
|
168
168
|
end
|
169
169
|
end
|
170
170
|
|
171
|
-
def period_calculated_fees_formula(line
|
171
|
+
def period_calculated_fees_formula(line:, early_repayment?: false)
|
172
172
|
term = line - 1
|
173
173
|
if loan.deferred_and_capitalized > 0 && term > loan.deferred_and_capitalized
|
174
174
|
with_fees = "#{remaining_capital_start(line)} * (1 + #{period_rate(line)} + #{period_fees_rate(line)})^#{loan.deferred_and_capitalized} * (#{period_rate(line)} + #{period_fees_rate(line)})"
|
175
175
|
without_fees = "#{remaining_capital_start(line)} * (1 + #{period_rate(line)})^#{loan.deferred_and_capitalized} * #{period_rate(line)}"
|
176
|
+
|
176
177
|
"=#{with_fees} - #{without_fees}"
|
177
178
|
elsif loan.bullet_term?(term)
|
178
|
-
|
179
|
-
|
179
|
+
index = (
|
180
|
+
if early_repayment?
|
181
|
+
index(line - 1)
|
182
|
+
else
|
183
|
+
index(line)
|
184
|
+
end
|
185
|
+
)
|
186
|
+
with_fees = "#{remaining_capital_start(line)} * (1 + #{period_fees_rate(line)} + #{period_rate(line)})^#{index}"
|
187
|
+
without_fees = "#{remaining_capital_start(line)} * (1 + #{period_rate(line)})^#{index}"
|
180
188
|
current = "#{with_fees} - #{without_fees}"
|
181
189
|
|
182
190
|
"=#{current} - #{capitalized_fees_start(line)}"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blend_spreadsheet_loan_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.40
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MZiserman
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-09-
|
11
|
+
date: 2021-09-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|