diff --git a/src/main/java/simpaths/data/startingpop/DataParser.java b/src/main/java/simpaths/data/startingpop/DataParser.java index c56ae06..6183842 100644 --- a/src/main/java/simpaths/data/startingpop/DataParser.java +++ b/src/main/java/simpaths/data/startingpop/DataParser.java @@ -154,7 +154,6 @@ private static void parse(String inputFileLocation, String inputFileName, Connec //Labour Market Economic Status + "ALTER TABLE " + personTable + " ADD activity_status VARCHAR_IGNORECASE;" - + "UPDATE " + personTable + " SET labC4 = 3 WHERE labC4 = 1 AND CAST(labWageHrly AS FLOAT)<0.01;" + "UPDATE " + personTable + " SET activity_status = 'EmployedOrSelfEmployed' WHERE labC4 = 1;" + "UPDATE " + personTable + " SET activity_status = 'Student' WHERE labC4 = 2;" + "UPDATE " + personTable + " SET activity_status = 'NotEmployed' WHERE labC4 = 3;" @@ -164,7 +163,6 @@ private static void parse(String inputFileLocation, String inputFileName, Connec //Lag(1) of labC4 + "ALTER TABLE " + personTable + " ADD activity_status VARCHAR_IGNORECASE;" - + "UPDATE " + personTable + " SET labC4L1 = 3 WHERE labC4L1 = 1 AND CAST(labWageHrlyL1 AS FLOAT)<0.01;" + "UPDATE " + personTable + " SET activity_status = 'EmployedOrSelfEmployed' WHERE labC4L1 = 1;" + "UPDATE " + personTable + " SET activity_status = 'Student' WHERE labC4L1 = 2;" + "UPDATE " + personTable + " SET activity_status = 'NotEmployed' WHERE labC4L1 = 3;" diff --git a/src/main/java/simpaths/model/Person.java b/src/main/java/simpaths/model/Person.java index 5c7855d..24e2b93 100644 --- a/src/main/java/simpaths/model/Person.java +++ b/src/main/java/simpaths/model/Person.java @@ -148,6 +148,7 @@ public class Person implements EventListener, IDoubleSource, IIntSource, Weight, @Transient private Labour labHrsWorkEnumWeekL1; // Lag(1) (previous year's value) of weekly labour supply private Integer labHrsWorkWeek; + private Integer labHrsWorkWeekL1; // Potential earnings is the gross hourly wage an individual can earn while working // and is estimated, for each individual, on the basis of observable characteristics as @@ -493,6 +494,7 @@ else if (demAge > Parameters.MAX_AGE_TO_STAY_IN_CONTINUOUS_EDUCATION) healthPartnerSelfRatedL1 = originalPerson.healthPartnerSelfRatedL1; labHrsWorkWeek = originalPerson.labHrsWorkWeek; + labHrsWorkWeekL1 = originalPerson.labHrsWorkWeekL1; labHrsWorkEnumWeek = originalPerson.getLabourSupplyWeekly(); double[] sampleDifferentials = setMarriageTargets(); demAgeDiffDesired = Objects.requireNonNullElseGet(originalPerson.demAgeDiffDesired, () -> sampleDifferentials[0]); @@ -516,15 +518,24 @@ else if (demAge > Parameters.MAX_AGE_TO_STAY_IN_CONTINUOUS_EDUCATION) yBenReceivedFlag = originalPerson.yBenReceivedFlag; yBenReceivedFlagL1 = originalPerson.yBenReceivedFlagL1; - if (originalPerson.labWageHrly > Parameters.MIN_HOURLY_WAGE_RATE) { + + if (originalPerson.labWageHrly >= Parameters.MIN_HOURLY_WAGE_RATE) { labWageHrly = Math.min(Parameters.MAX_HOURLY_WAGE_RATE, Math.max(Parameters.MIN_HOURLY_WAGE_RATE, originalPerson.labWageHrly)); } else { - labWageHrly = -9.0; + labWageHrly = 0.0; + labHrsWorkWeek = 0; + labC4 = Les_c4.NotEmployed; } - if (originalPerson.labWageHrlyL1!=null && originalPerson.labWageHrlyL1>Parameters.MIN_HOURLY_WAGE_RATE) { + if (originalPerson.labWageHrlyL1!=null && originalPerson.labWageHrlyL1 >= Parameters.MIN_HOURLY_WAGE_RATE) { labWageHrlyL1 = Math.min(Parameters.MAX_HOURLY_WAGE_RATE, Math.max(Parameters.MIN_HOURLY_WAGE_RATE, originalPerson.labWageHrlyL1)); } else { - labWageHrlyL1 = labWageHrly; + if (originalPerson.labWageHrlyL1 == null && originalPerson.labWageHrly != null) + labWageHrlyL1 = labWageHrly; + if (labWageHrlyL1 == null || labWageHrlyL1 < Parameters.MIN_HOURLY_WAGE_RATE) { + labWageHrlyL1 = 0.0; + labHrsWorkWeekL1 = 0; + labC4L1 = Les_c4.NotEmployed; + } } }