summaryrefslogtreecommitdiff
path: root/app/Census/AbstractCensusColumn.php
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@gmail.com>2015-10-07 13:31:46 +0100
committerGreg Roach <fisharebest@gmail.com>2015-10-07 13:31:46 +0100
commitb26116c93fc2030fb2b07a782c69484dc7536947 (patch)
tree1f79bb4e8f10a767769270d62c6776790c28d5c4 /app/Census/AbstractCensusColumn.php
parent548ca0dd332bc2ccd2184fad673fab4643826e17 (diff)
downloadwebtrees-b26116c93fc2030fb2b07a782c69484dc7536947.tar.gz
webtrees-b26116c93fc2030fb2b07a782c69484dc7536947.tar.bz2
webtrees-b26116c93fc2030fb2b07a782c69484dc7536947.zip
Census
Diffstat (limited to 'app/Census/AbstractCensusColumn.php')
-rw-r--r--app/Census/AbstractCensusColumn.php34
1 files changed, 32 insertions, 2 deletions
diff --git a/app/Census/AbstractCensusColumn.php b/app/Census/AbstractCensusColumn.php
index a1c8c5c93d..26afd7046b 100644
--- a/app/Census/AbstractCensusColumn.php
+++ b/app/Census/AbstractCensusColumn.php
@@ -16,6 +16,7 @@
namespace Fisharebest\Webtrees\Census;
use Fisharebest\Webtrees\Date;
+use Fisharebest\Webtrees\Family;
use Fisharebest\Webtrees\Individual;
/**
@@ -78,7 +79,9 @@ class AbstractCensusColumn {
/**
* Find the father of an individual
*
- * @return Individual $individual
+ * @param Individual $individual
+ *
+ * @return Individual|null
*/
public function father(Individual $individual) {
$family = $individual->getPrimaryChildFamily();
@@ -93,7 +96,9 @@ class AbstractCensusColumn {
/**
* Find the mother of an individual
*
- * @return Individual $individual
+ * @param Individual $individual
+ *
+ * @return Individual|null
*/
public function mother(Individual $individual) {
$family = $individual->getPrimaryChildFamily();
@@ -132,6 +137,31 @@ class AbstractCensusColumn {
}
/**
+ * Find the current spouse family of an individual
+ *
+ * @param Individual $individual
+ *
+ * @return Family|null
+ */
+ public function spouseFamily(Individual $individual) {
+ // Exclude families that were created after this census date
+ $families = array();
+ foreach ($individual->getSpouseFamilies() as $family) {
+ if (Date::compare($family->getMarriageDate(), $this->date()) <= 0) {
+ $families[] = $family;
+ }
+ }
+
+ if (empty($families)) {
+ return null;
+ } else {
+ usort($families, function(Family $x, Family $y) { return Date::compare($x->getMarriageDate(), $y->getMarriageDate()); });
+
+ return end($families);
+ }
+ }
+
+ /**
* The full version of the column's name.
*
* @return string