From 5bdd444b2e958b086383d7ecee6f09989f0cdf5a Mon Sep 17 00:00:00 2001
From: Reinhold Kainhofer <reinhold.kainhofer@at.ey.com>
Date: Fri, 6 Nov 2020 10:34:41 +0100
Subject: [PATCH] Fix date / interest addition of sub-blocks for contracts with
 multiple dynamics;

---
 R/InsuranceContract.R | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/R/InsuranceContract.R b/R/InsuranceContract.R
index a7a1a1d..a353f2e 100644
--- a/R/InsuranceContract.R
+++ b/R/InsuranceContract.R
@@ -479,7 +479,7 @@ InsuranceContract = R6Class(
             # Override with arguments explicitly given
             arguments = list(...)
             params[names(arguments)] = arguments[names(arguments)]
-            params$comment = sprintf("Dynamic increase at time %d to sum %02f", t, NewSumInsured)
+            params$comment = sprintf("Dynamic increase at time %d to sum %0.2f", t, NewSumInsured)
             do.call(self$addBlock, params)
         },
 
@@ -725,6 +725,11 @@ InsuranceContract = R6Class(
             self$Values$basicData              = consolidateField("basicData")
             # self$Values$basicData[,c("InterestRate", "PolicyDuration", "PremiumPeriod")] = NULL
 
+            # Some fields can NOT be summed, but have to be left untouched.
+            # Hard-code these to use the values from the main contract part:
+            self$Values$reservesBalanceSheet[,c("date", "time")]               = self$blocks[[1]]$Values$reservesBalanceSheet[,c("date", "time")]
+            self$Values$basicData[,c("InterestRate", "PolicyDuration", "PremiumPeriod")]               = self$blocks[[1]]$Values$basicData[,c("InterestRate", "PolicyDuration", "PremiumPeriod")]
+
             invisible(self)
         },
 
-- 
GitLab