From 94914f5bdb84a2104560ced5d29f8c8f6aa32135 Mon Sep 17 00:00:00 2001 From: Sara Busato Date: Mon, 3 Jul 2023 15:31:02 +0200 Subject: [PATCH 1/2] remove ContractTerm --- ifrs17/DataModel/DataStructure.ipynb | 23 ++++++++++++++++------- ifrs17/Import/Importers.ipynb | 12 ++---------- ifrs17/Utils/Queries.ipynb | 18 ++---------------- 3 files changed, 20 insertions(+), 33 deletions(-) diff --git a/ifrs17/DataModel/DataStructure.ipynb b/ifrs17/DataModel/DataStructure.ipynb index 864b87cd..eb06c348 100644 --- a/ifrs17/DataModel/DataStructure.ipynb +++ b/ifrs17/DataModel/DataStructure.ipynb @@ -1412,8 +1412,6 @@ "\n", "\nA Group of Contract is a set of contracts with the same Annual Cohort, Liability Type, Profitability and Partner (in case the contracts are done with a re-insurer).", "\n", - "\nContractTerm : defines the term that the given Contract is valid for in whole number of months. It can be used to compute the deferrable or amortized positions in the Balance Sheet. It is not a mandatory input, even if column header 'ContractTerm' is present. The default value is 0.", - "\n", "\nVarious Group of Contracts are put together into portfolios." ], "metadata": {}, @@ -1450,10 +1448,6 @@ "\n public string YieldCurveName { get; init; }", "\n ", "\n public virtual string Partner { get; init; }", - "\n ", - "\n [NotVisible]", - "\n [Dimension(typeof(int), nameof(ContractTerm))]", - "\n public int ContractTerm { get; init; }", "\n}" ], "metadata": {}, @@ -1706,10 +1700,25 @@ "\n public State PreviousState { get; init; }", "\n ", "\n public bool IsReinsurance { get; init; }", - "\n public int ContractTerm { get; init; }", "\n", "\n public DataNodeData(){}", "\n", + "\n public DataNodeData(GroupOfContract dn)", + "\n {", + "\n DataNode = dn.SystemName;", + "\n ContractualCurrency = dn.ContractualCurrency;", + "\n FunctionalCurrency = dn.FunctionalCurrency;", + "\n LineOfBusiness = dn.LineOfBusiness;", + "\n ValuationApproach = dn.ValuationApproach;", + "\n OciType = dn.OciType;", + "\n Portfolio = dn.Portfolio;", + "\n AnnualCohort = dn.AnnualCohort;", + "\n LiabilityType = dn.LiabilityType;", + "\n Profitability = dn.Profitability;", + "\n Partner = dn.Partner;", + "\n IsReinsurance = dn.GetType() == typeof(GroupOfReinsuranceContract);", + "\n YieldCurveName = dn.YieldCurveName;", + "\n }", "\n}" ], "metadata": {}, diff --git a/ifrs17/Import/Importers.ipynb b/ifrs17/Import/Importers.ipynb index 7b324aff..a330a4da 100644 --- a/ifrs17/Import/Importers.ipynb +++ b/ifrs17/Import/Importers.ipynb @@ -1017,8 +1017,6 @@ "\n", "\n var yieldCurveColumnGroupOfInsuranceContract = dataSet.Tables.Contains(nameof(GroupOfInsuranceContract)) && dataSet.Tables[nameof(GroupOfInsuranceContract)].Columns.Any(x => x.ColumnName == nameof(GroupOfInsuranceContract.YieldCurveName));", "\n var yieldCurveColumnGroupOfReinsuranceContract = dataSet.Tables.Contains(nameof(GroupOfReinsuranceContract)) && dataSet.Tables[nameof(GroupOfReinsuranceContract)].Columns.Any(x => x.ColumnName == nameof(GroupOfReinsuranceContract.YieldCurveName));", - "\n var contractTermColumnGroupOfInsuranceContract = dataSet.Tables.Contains(nameof(GroupOfInsuranceContract)) && dataSet.Tables[nameof(GroupOfInsuranceContract)].Columns.Any(x => x.ColumnName == nameof(GroupOfInsuranceContract.ContractTerm));", - "\n var contractTermColumnGroupOfReinsuranceContract = dataSet.Tables.Contains(nameof(GroupOfReinsuranceContract)) && dataSet.Tables[nameof(GroupOfReinsuranceContract)].Columns.Any(x => x.ColumnName == nameof(GroupOfReinsuranceContract.ContractTerm));", "\n", "\n var importLogGroupOfContracts = await Import.FromDataSet(dataSet)", "\n .WithType((dataset, datarow) => {", @@ -1042,10 +1040,7 @@ "\n Portfolio = pf,", "\n YieldCurveName = yieldCurveColumnGroupOfInsuranceContract", "\n ? datarow.Field(nameof(GroupOfContract.YieldCurveName)) ", - "\n : (string)null,", - "\n ContractTerm = contractTermColumnGroupOfInsuranceContract", - "\n ? Convert.ToInt32(datarow.Field(nameof(GroupOfContract.ContractTerm))) ", - "\n : default };", + "\n : (string)null };", "\n return ExtendGroupOfContract(gic, datarow);", "\n })", "\n .WithType((dataset, datarow) => {", @@ -1070,10 +1065,7 @@ "\n Partner = datarow.Field(nameof(GroupOfContract.Partner)),", "\n YieldCurveName = yieldCurveColumnGroupOfReinsuranceContract", "\n ? datarow.Field(nameof(GroupOfContract.YieldCurveName)) ", - "\n : (string)null,", - "\n ContractTerm = contractTermColumnGroupOfReinsuranceContract", - "\n ? Convert.ToInt32(datarow.Field(nameof(GroupOfContract.ContractTerm))) ", - "\n : default };", + "\n : (string)null };", "\n return ExtendGroupOfContract(gric, datarow);", "\n })", "\n .WithTarget(workspace)", diff --git a/ifrs17/Utils/Queries.ipynb b/ifrs17/Utils/Queries.ipynb index 25a9aae8..820469b0 100644 --- a/ifrs17/Utils/Queries.ipynb +++ b/ifrs17/Utils/Queries.ipynb @@ -302,24 +302,10 @@ "\n .ToDictionary(dn => dn.SystemName, dn => {", "\n var dnCurrentState = dataNodeStates[dn.SystemName][CurrentPeriod];", "\n var dnPreviousState = dataNodeStates[dn.SystemName][PreviousPeriod];", - "\n return new DataNodeData(){Year = dnPreviousState.Year, ", + "\n return new DataNodeData(dn){Year = dnPreviousState.Year, ", "\n Month = dnPreviousState.Month,", "\n State = dnCurrentState.State,", - "\n PreviousState = dnPreviousState.State,", - "\n DataNode = dn.SystemName,", - "\n ContractualCurrency = dn.ContractualCurrency,", - "\n FunctionalCurrency = dn.FunctionalCurrency,", - "\n LineOfBusiness = dn.LineOfBusiness,", - "\n ValuationApproach = dn.ValuationApproach,", - "\n OciType = dn.OciType,", - "\n Portfolio = dn.Portfolio,", - "\n AnnualCohort = dn.AnnualCohort,", - "\n LiabilityType = dn.LiabilityType,", - "\n Profitability = dn.Profitability,", - "\n Partner = dn.Partner,", - "\n IsReinsurance = dn.GetType() == typeof(GroupOfReinsuranceContract),", - "\n YieldCurveName = dn.YieldCurveName,", - "\n ContractTerm = dn.ContractTerm", + "\n PreviousState = dnPreviousState.State", "\n };", "\n }", "\n );", From 68dfcab7c662c6889ebb7ff86340751559323a9f Mon Sep 17 00:00:00 2001 From: Sara Busato Date: Tue, 4 Jul 2023 12:08:53 +0200 Subject: [PATCH 2/2] fixed IsReinsurance in DataNodeData --- ifrs17/DataModel/DataStructure.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ifrs17/DataModel/DataStructure.ipynb b/ifrs17/DataModel/DataStructure.ipynb index eb06c348..a3b59fb9 100644 --- a/ifrs17/DataModel/DataStructure.ipynb +++ b/ifrs17/DataModel/DataStructure.ipynb @@ -1716,7 +1716,7 @@ "\n LiabilityType = dn.LiabilityType;", "\n Profitability = dn.Profitability;", "\n Partner = dn.Partner;", - "\n IsReinsurance = dn.GetType() == typeof(GroupOfReinsuranceContract);", + "\n IsReinsurance = dn.GetType().Name == nameof(GroupOfReinsuranceContract);", "\n YieldCurveName = dn.YieldCurveName;", "\n }", "\n}"