blend_spreadsheet_loan_generator 0.1.33 → 0.1.38

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: caf298e238200e25827511da7dac19fb3632a4e4a85b1ea86f16323dd2e28b58
4
- data.tar.gz: 52fc113243acc66cc02c65016871ba435cbeb70762b28d9240e07afb0a27dbd9
3
+ metadata.gz: 7600f8eb355e9e5505dbddbbf4fee01c9f3830f20a3f33d40e64d90a1ef4ca92
4
+ data.tar.gz: 34f88205215b6c1885061567a2e506500749bba02e4ea37c859abb192a392f66
5
5
  SHA512:
6
- metadata.gz: a41171c8bda9961b3b483fdc911a2eca6c0e7cd7d7fa47824e14d306f8d65316c6a9a8ec8e00fe16d25e0d9927d990664f69d75c0728d2c8608586dfde06fe72
7
- data.tar.gz: 9bf8c3e0e21dc5f5419d90db5fd3be45032bf6f485c9cf4c077d441acfa443f73a7e16102fd4c2bba751ac21351fa50530debd677ef240a82ec446977caa7a66
6
+ metadata.gz: a98439ca0cc32a014b5eb9a319db03e1ea5e176b20dbde268dc4f81d54da3b702d33ffc085a329988858d0f0448880e76fae10ad5440009253031dfc1d340439
7
+ data.tar.gz: 0663020d3eecf5a36d7c7eff0fedfa2f166692eac16d4959a32e2157c4e7cd3aede6dc60c981e2de0b444eee82bec8c07621011d7876caa980adc01ec6779dec
@@ -169,15 +169,28 @@ module BlendSpreadsheetLoanGenerator
169
169
  end
170
170
 
171
171
  def period_calculated_fees_formula(line:)
172
- amount_to_capitalize = [
173
- '(',
174
- remaining_capital_start(line),
175
- '+',
176
- capitalized_interests_start(line),
177
- ')'
178
- ].join(' ')
172
+ term = line - 1
173
+ if loan.deferred_and_capitalized > 0 && term > loan.deferred_and_capitalized
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
+ without_fees = "#{remaining_capital_start(line)} * (1 + #{period_rate(line)})^#{loan.deferred_and_capitalized} * #{period_rate(line)}"
176
+ "=#{with_fees} - #{without_fees}"
177
+ elsif loan.bullet_term?(term)
178
+ with_fees = "#{remaining_capital_start(line)} * (1 + #{period_fees_rate(line)} + #{period_rate(line)})^#{index(line)}"
179
+ without_fees = "#{remaining_capital_start(line)} * (1 + #{period_rate(line)})^#{index(line)}"
180
+ current = "#{with_fees} - #{without_fees}"
179
181
 
180
- "=#{amount_to_capitalize} * #{period_fees_rate(line)}"
182
+ "=#{current} - #{capitalized_fees_end(line - 1)}"
183
+ else
184
+ amount_to_capitalize = [
185
+ '(',
186
+ remaining_capital_start(line),
187
+ '+',
188
+ capitalized_interests_start(line),
189
+ ')'
190
+ ].join(' ')
191
+
192
+ "=#{amount_to_capitalize} * #{period_fees_rate(line)}"
193
+ end
181
194
  end
182
195
 
183
196
  def capitalized_fees_start_formula(line:)
@@ -112,6 +112,10 @@ module BlendSpreadsheetLoanGenerator
112
112
  fully_deferred? && deferred_and_capitalized == total_deferred_duration
113
113
  end
114
114
 
115
+ def bullet_term?(term)
116
+ deferred_and_capitalized <= term || bullet? # for last term
117
+ end
118
+
115
119
  def in_fine?
116
120
  fully_deferred? && deferred == total_deferred_duration
117
121
  end
@@ -1,7 +1,7 @@
1
1
  require 'dry/cli'
2
2
 
3
3
  module BlendSpreadsheetLoanGenerator
4
- VERSION = '0.1.33'.freeze
4
+ VERSION = '0.1.38'.freeze
5
5
 
6
6
  class Version < Dry::CLI::Command
7
7
  desc 'Print version'
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.33
4
+ version: 0.1.38
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-24 00:00:00.000000000 Z
11
+ date: 2021-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport