From 414d711f1b4572c2b7c9dff97a17d4740161d344 Mon Sep 17 00:00:00 2001 From: Sara Busato Date: Thu, 22 Dec 2022 09:27:03 +0100 Subject: [PATCH] Openings: remove reimport duplicates (#150) * fixed ImportStorage queries for openings * clean up --- ifrs17/Import/ImportStorage.ipynb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/ifrs17/Import/ImportStorage.ipynb b/ifrs17/Import/ImportStorage.ipynb index c6572abc..8b7e04f6 100644 --- a/ifrs17/Import/ImportStorage.ipynb +++ b/ifrs17/Import/ImportStorage.ipynb @@ -223,7 +223,10 @@ "\n var openingRawVariables = Enumerable.Empty();", "\n var openingIfrsVariables = Enumerable.Empty();", "\n", - "\n if(allImportScopes.Select(dn => DataNodeDataBySystemName[dn]).Any(dnd => dnd.Year < args.Year)) {", + "\n var allImportScopesAtInceptionYear = allImportScopes.Select(dn => DataNodeDataBySystemName[dn]).Where(dnd => dnd.Year == args.Year).Select(x => x.DataNode).ToHashSet();", + "\n var allImportScopesNotAtInceptionYear = allImportScopes.Except(allImportScopesAtInceptionYear);", + "\n", + "\n if(allImportScopesNotAtInceptionYear.Any()) {", "\n PreviousPeriodPartition = (await querySource.Query().Where(p => p.ReportingNode == args.ReportingNode &&", "\n p.Year == PreviousReportingPeriod.Year &&", "\n p.Month == PreviousReportingPeriod.Month &&", @@ -240,7 +243,7 @@ "\n ", "\n openingIfrsVariables = (await querySource.Query()", "\n .Where(iv => iv.Partition == PreviousPeriodPartition && iv.AocType == AocTypes.EOP)", - "\n .Where(v => allImportScopes.Contains(v.DataNode))", + "\n .Where(v => allImportScopesNotAtInceptionYear.Contains(v.DataNode))", "\n .ToArrayAsync())", "\n .Select(iv => iv with {AocType = AocTypes.BOP, Novelty = Novelties.I, Partition = TargetPartition});", "\n ", @@ -250,11 +253,15 @@ "\n ", "\n //SetPartition to current Period", "\n await querySource.Partition.SetAsync(TargetPartition);", - "\n ", - "\n if(primaryScope.Select(dn => DataNodeDataBySystemName[dn]).Any(dnd => dnd.Year == args.Year) && ImportFormat != ImportFormats.Opening)", + "\n", + "\n var primaryScopeAtInceptionYear = allImportScopesAtInceptionYear.Where(dn => primaryScope.Contains(dn));", + "\n var secondaryScopeAtInceptionYear = allImportScopesAtInceptionYear.Where(dn => secondaryScope.Contains(dn)); ", + "\n if(allImportScopesAtInceptionYear.Any() && ImportFormat != ImportFormats.Opening) ", "\n openingIfrsVariables = openingIfrsVariables.Concat(await querySource.Query()", "\n .Where(iv => iv.Partition == TargetPartition && iv.AocType == AocTypes.BOP && iv.Novelty == Novelties.I)", - "\n .Where(iv => primaryScope.Contains(iv.DataNode) && EstimateTypesByImportFormat[InputSource.Opening.ToString()].Contains(iv.EstimateType) || secondaryScope.Contains(iv.DataNode))", + "\n .Where(iv => primaryScopeAtInceptionYear.Contains(iv.DataNode) ", + "\n && EstimateTypesByImportFormat[InputSource.Opening.ToString()].Contains(iv.EstimateType) ", + "\n || secondaryScopeAtInceptionYear.Contains(iv.DataNode))", "\n .ToArrayAsync());", "\n ", "\n //Variables",