From f65131293319cc896085888004cf135a3a62c3fd Mon Sep 17 00:00:00 2001
From: Agustin <agusr1999@gmail.com>
Date: Sat, 25 Sep 2021 14:21:04 -0300
Subject: [PATCH] New attribute in PopulationMaternity, takes number of women
 in age group

Also changes calculations for adjusting ER for adult women when receiving PopulationMaternity
---
 src/DTOs/PopulationMaternityDTO.ts |  1 +
 src/Services/ERCalculator.ts       | 12 ++++++------
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/DTOs/PopulationMaternityDTO.ts b/src/DTOs/PopulationMaternityDTO.ts
index 940f618..c47f473 100644
--- a/src/DTOs/PopulationMaternityDTO.ts
+++ b/src/DTOs/PopulationMaternityDTO.ts
@@ -1,5 +1,6 @@
 type PopulationMaternity = {
   countryBirthRate: number;
+  countryWomenInAgeGroup: number;
   countryPopulation: number;
 };
 
diff --git a/src/Services/ERCalculator.ts b/src/Services/ERCalculator.ts
index c13d6e6..f9af891 100644
--- a/src/Services/ERCalculator.ts
+++ b/src/Services/ERCalculator.ts
@@ -66,11 +66,11 @@ const calculateERWomenIndividual = (group: AgeGroup, params: number[], popData:
 };
 
 // eslint-disable-next-line max-len
-const calculateERWomenPopulation = (group: AgeGroup, params: number[], popData: PopulationMaternity, req: number): number => {
-  const annualBirths = popData.countryBirthRate * popData.countryPopulation;
+const calculateERWomenPopulation = (params: number[], popData: PopulationMaternity, req: number): number => {
+  const annualBirths = (popData.countryBirthRate * popData.countryPopulation) / 1000;
 
-  const percentPregnantWomen = (annualBirths * 75) / group.population;
-  const percentLactatingWomen = (annualBirths * 50) / group.population;
+  const percentPregnantWomen = (annualBirths * 75) / popData.countryWomenInAgeGroup;
+  const percentLactatingWomen = (annualBirths * 50) / popData.countryWomenInAgeGroup;
 
   const reqPregnantWomen = (percentPregnantWomen * (req + params[6])) / 100;
   const reqLactatingWomen = (percentLactatingWomen * (req + params[7])) / 100;
@@ -147,7 +147,7 @@ const calculate18To29Years = (group: AgeGroup, params: number[], data: ExtraData
     } else if (isIndividualMaternity(data.maternity18To29)) {
       requirement = calculateERWomenIndividual(group, params, data.maternity18To29, requirement);
     } else {
-      requirement = calculateERWomenPopulation(group, params, data.maternity18To29, requirement);
+      requirement = calculateERWomenPopulation(params, data.maternity18To29, requirement);
     }
   }
 
@@ -181,7 +181,7 @@ const calculate30To59Years = (group: AgeGroup, params: number[], data: ExtraData
     } else if (isIndividualMaternity(data.maternity30To59)) {
       requirement = calculateERWomenIndividual(group, params, data.maternity30To59, requirement);
     } else {
-      requirement = calculateERWomenPopulation(group, params, data.maternity30To59, requirement);
+      requirement = calculateERWomenPopulation(params, data.maternity30To59, requirement);
     }
   }
 
-- 
GitLab