new: [individuals] new finder method to find by alignment
parent
8fdb8668c8
commit
3790244ce4
|
@ -5,6 +5,8 @@ namespace App\Model\Table;
|
|||
use App\Model\Table\AppTable;
|
||||
use Cake\ORM\Table;
|
||||
use Cake\Validation\Validator;
|
||||
use Cake\ORM\Query;
|
||||
|
||||
|
||||
class IndividualsTable extends AppTable
|
||||
{
|
||||
|
@ -55,7 +57,9 @@ class IndividualsTable extends AppTable
|
|||
'uuid' => $individual['uuid']
|
||||
])->first();
|
||||
} else {
|
||||
return null;
|
||||
$existingIndividual = $this->find()->where([
|
||||
'email' => $individual['email']
|
||||
])->first();
|
||||
}
|
||||
if (empty($existingIndividual)) {
|
||||
$entityToSave = $this->newEmptyEntity();
|
||||
|
@ -90,4 +94,16 @@ class IndividualsTable extends AppTable
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function findAligned(Query $query, array $options)
|
||||
{
|
||||
$query = $query->select(['Individuals.id']);
|
||||
if (empty($options['organisation_id'])) {
|
||||
$query->leftJoinWith('Alignments')->where(['Alignments.organisation_id IS' => null]);
|
||||
} else {
|
||||
$query->innerJoinWith('Alignments')
|
||||
->where(['Alignments.organisation_id IN' => $options['organisation_id']]);
|
||||
}
|
||||
return $query->group(['Individuals.id', 'Individuals.uuid']);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue