nameSearch method
Implementation
nameSearch(
selectQuery, GlobalSearchParameters params, LocalSqlDataStore sql) async {
if (params.nameSearch == null || params.nameSearch!.isEmpty) {
return selectQuery;
} else if (params.nameSearch != null ||
params.nameSearch!.isNotEmpty && selectQuery == null) {
selectQuery = super
.sql
.individual
.select()
.join([joinName(sql), joinIndividualAddress(sql)]);
await searchByName(selectQuery, params, sql);
selectQuery = selectQuery.join([
leftOuterJoin(
sql.householdMember,
sql.householdMember.individualClientReferenceId
.equalsExp(sql.individual.clientReferenceId))
])
..where(sql.householdMember.isHeadOfHousehold.equals(true));
selectQuery.join([
leftOuterJoin(
sql.household,
sql.household.clientReferenceId
.equalsExp(sql.householdMember.householdClientReferenceId)),
leftOuterJoin(
sql.projectBeneficiary,
sql.projectBeneficiary.beneficiaryClientReferenceId
.equalsExp(sql.household.clientReferenceId))
]);
} else if (params.nameSearch != null &&
params.nameSearch!.isNotEmpty &&
selectQuery != null) {
selectQuery = selectQuery.join([
joinName(sql),
]);
selectQuery = searchByName(selectQuery, params, sql);
}
return selectQuery;
}