From dcedd0006cc3badce0bcbb8505f35e8c6ff23ef4 Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer <reinhold.kainhofer@at.ey.com> Date: Sat, 7 Nov 2020 13:16:44 +0100 Subject: [PATCH] Correctly handle initialCapital for contracts with dynamics -) Clear initialCapital when creating dynamics (i.e. an initial capital set for the main contract should not be used for dynamics, while all other parameters should be used!). Explicitly setting an initial capital in addDynamics will still work, of course. -) Fix export of contracts with initial capital and multiple blocks --- R/InsuranceContract.R | 1 + R/exportInsuranceContract_xlsx.R | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/R/InsuranceContract.R b/R/InsuranceContract.R index a353f2e..a119483 100644 --- a/R/InsuranceContract.R +++ b/R/InsuranceContract.R @@ -455,6 +455,7 @@ InsuranceContract = R6Class( if (!is.null(params$premiumPeriod)) params$premiumPeriod = max(1, params$premiumPeriod - t) if (!is.null(params$deferralPeriod)) params$deferralPeriod = max(0, params$deferralPeriod - t) if (!is.null(params$contractClosing)) params$contractClosing = params$contractClosing + years(t) + params$initialCapital = NULL # TODO: Adjust non-constant parameters (e.g. profit rates or benefits given as vector) to the later start time # TODO: Generalize this to also allow specifying dynamic premium rather than sum insured diff --git a/R/exportInsuranceContract_xlsx.R b/R/exportInsuranceContract_xlsx.R index 2d4b6fd..a477df0 100644 --- a/R/exportInsuranceContract_xlsx.R +++ b/R/exportInsuranceContract_xlsx.R @@ -319,8 +319,13 @@ exportContractDataTable = function(wb, sheet, contract, ccol = 1, crow = 1, styl crow = crow + 4; # Values (parameters, premiums, etc.) of all blocks #### + additional_capital = contractPremiums$additional_capital + if (is.null(contract$Values$premiums)) { + # Contracts with multiple child blocks do not have their own premium structure => set additional capital to 0 + additional_capital = c(0, additional_capital) + } tmp = contractValues %>% - mutate(`Initial Capital` = contractPremiums$additional_capital) %>% + mutate(`Initial Capital` = additional_capital) %>% select( Vertragsteil = .data$ID, Beginn = `Start of Contract`, Tarif = .data$Tariff, .data$`Sum insured`, `Initial Capital`, -- GitLab