diff --git a/src/main/java/simpaths/model/Person.java b/src/main/java/simpaths/model/Person.java index 4376aa9f5..66018a4f3 100644 --- a/src/main/java/simpaths/model/Person.java +++ b/src/main/java/simpaths/model/Person.java @@ -49,6 +49,7 @@ public class Person implements EventListener, IDoubleSource, IIntSource, Weight, private Long idOriginalHH; private Long idMother; private Long idFather; + private Long idPartner; private Boolean clonedFlag; private Boolean bornInSimulation; //Flag to keep track of newborns private Long seed; @@ -59,6 +60,7 @@ public class Person implements EventListener, IDoubleSource, IIntSource, Weight, // person level variables private int dag; //Age + private Dcpst dcpst; @Enumerated(EnumType.STRING) private Indicator adultchildflag; @Transient private boolean ioFlag; // true if a dummy person instantiated for IO decision solution @Enumerated(EnumType.STRING) private Gender dgn; // gender @@ -712,6 +714,7 @@ public enum Processes { SocialCareProvision, Unemployment, Update, + UpdateOutputVariables, UpdatePotentialHourlyEarnings, //Needed to union matching and labour supply } @@ -724,6 +727,9 @@ public void onEvent(Enum type) { case Update -> { updateVariables(false); } + case UpdateOutputVariables -> { + updateOutputVariables(); + } case ProjectEquivConsumption -> { projectEquivConsumption(); } @@ -1896,6 +1902,11 @@ protected void updateVariables(boolean initialUpdate) { } } + private void updateOutputVariables() { + idPartner = getPartnerID(); + dcpst = getDcpst(); + } + private void updateLaggedVariables(boolean initialUpdate) { les_c4_lag1 = les_c4; @@ -4332,6 +4343,13 @@ public Person getPartner() { return null; } + public Long getPartnerID() { + Person partner = this.getPartner(); + if (partner != null) { + return partner.getId(); + } else return null; + } + private void nullPartnerVariables() { careHoursFromPartnerWeekly = 0.0; diff --git a/src/main/java/simpaths/model/SimPathsModel.java b/src/main/java/simpaths/model/SimPathsModel.java index 43b42c173..2074ab241 100644 --- a/src/main/java/simpaths/model/SimPathsModel.java +++ b/src/main/java/simpaths/model/SimPathsModel.java @@ -594,6 +594,7 @@ public void buildSchedule() { addCollectionEventToAllYears(persons, Person.Processes.HealthEQ5D); addEventToAllYears(Processes.CheckForImperfectTaxDBMatches); addEventToAllYears(tests, Tests.Processes.RunTests); //Run tests + addCollectionEventToAllYears(persons, Person.Processes.UpdateOutputVariables); // Update idPartner, dhhtp_c4 addEventToAllYears(Processes.EndYear); // UPDATE YEAR