blend_spreadsheet_loan_generator 0.1.27 → 0.1.31

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: b500ee01fce00eb5d3a71404f720ae470dd141bf187bef1634f3ad57588ba9f5
4
- data.tar.gz: 46b53438bd6c349e3c5b52fc6fe333c081c1fd24bf5c098b28c4437abadb0ae4
3
+ metadata.gz: 398e368c7cf8e095e275942ec8d8f5375a3452f947bd97bba30cb06520a4437b
4
+ data.tar.gz: d9d40882295305ad46b49d5b76abeaa2ca89a89c5f0ffac453bc0fc095592873
5
5
  SHA512:
6
- metadata.gz: c2ff7ffde2072fda5f29fb4fcaf61f6e3bccb663855c3527bba5d6f416d2949b2bc6a45bf92be0cc548f0976406dc115e54d225b01716b0072f8092a936b125e
7
- data.tar.gz: 673dd3c59ce84d779cced52348043ce32e216faa5dc54bc332a8653206618f63ef5348b3a36b342e63ecfb26b3e795d99946c569c609314771300f0e47e00a66
6
+ metadata.gz: c790e70c21a56c50463428a037b3dfb472e086ff8c739fd36f0a9342914091e54253e2c415139c94c3559ee89e8a65f7ee2b0f2df0467b0ca43bcd2a1f1bc790
7
+ data.tar.gz: 03243acbdc2824c7102c59858a8bdd206376a0941a727ad3328877aed9d7a0b675f68e4e748c53a17ae55d19ed1cf0b72ade2f6e047562a2a1692b7c6e9072f6
@@ -27,24 +27,3 @@ module BlendSpreadsheetLoanGenerator
27
27
  end
28
28
  end
29
29
  end
30
-
31
-
32
- def generate_csv(data:, name:)
33
- CSV.open(name, 'wb') do |csv|
34
- data.each do |datum|
35
- row = []
36
- datum.each.with_index do |value, index|
37
- row << (
38
- if index == 0
39
- value.to_i
40
- elsif index == 1
41
- Date.parse(value).strftime('%m/%d/%Y')
42
- else
43
- value.gsub(',', '.').to_f
44
- end
45
- )
46
- end
47
- csv << row
48
- end
49
- end
50
- end
@@ -85,8 +85,17 @@ module BlendSpreadsheetLoanGenerator
85
85
  values[last_paid_line + 1][:period_calculated_interests] +
86
86
  values[last_paid_line + 1][:period_calculated_fees]
87
87
  )
88
+ capital_paid_for_ratio = amount_paid.to_f - (
89
+ values[last_paid_line + 1][:capitalized_fees_start] +
90
+ values[last_paid_line + 1][:period_calculated_fees]
91
+ )
92
+ remaining_capital_for_ratio = (
93
+ values[last_paid_line + 1][:remaining_capital_start] +
94
+ values[last_paid_line + 1][:capitalized_interests_start] +
95
+ values[last_paid_line + 1][:period_calculated_interests]
96
+ )
88
97
 
89
- ratio = options.fetch(:ratio, (capital_paid.to_f / values[last_paid_line + 1][:remaining_capital_start])).to_f
98
+ ratio = options.fetch(:ratio, capital_paid_for_ratio.to_f / remaining_capital_for_ratio).to_f
90
99
  guaranteed_interests_paid = ratio * total_guaranteed_interests
91
100
  guaranteed_fees_paid = ratio * total_guaranteed_fees
92
101
 
@@ -191,7 +191,9 @@ module BlendSpreadsheetLoanGenerator
191
191
  def capitalized_fees_end_formula(line:)
192
192
  term = line - 1
193
193
  if term <= loan.deferred_and_capitalized
194
- "=ARRONDI(#{capitalized_fees_start(line)} + #{period_calculated_fees(line)}; 2)"
194
+ with_fees = "#{remaining_capital_start(line)} * (1 + #{period_fees_rate(line)} + #{period_rate(line)})^#{index(line)}"
195
+ without_fees = "#{remaining_capital_start(line)} * (1 + #{period_rate(line)})^#{index(line)}"
196
+ "=ARRONDI(#{with_fees} - #{without_fees})"
195
197
  else
196
198
  "=ARRONDI(#{capitalized_fees_start(line)} - #{period_reimbursed_capitalized_fees(line)}; 2)"
197
199
  end
@@ -1,7 +1,7 @@
1
1
  require 'dry/cli'
2
2
 
3
3
  module BlendSpreadsheetLoanGenerator
4
- VERSION = '0.1.27'.freeze
4
+ VERSION = '0.1.31'.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.27
4
+ version: 0.1.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - MZiserman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-15 00:00:00.000000000 Z
11
+ date: 2021-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport