in app/Models/Contact/Contact.php [462:492]
public function scopeSortedBy(Builder $builder, $criteria)
{
switch ($criteria) {
case 'firstnameAZ':
return $builder->orderBy('first_name', 'asc');
case 'firstnameZA':
return $builder->orderBy('first_name', 'desc');
case 'lastnameAZ':
return $builder->orderBy('last_name', 'asc');
case 'lastnameZA':
return $builder->orderBy('last_name', 'desc');
case 'lastactivitydateNewtoOld':
$builder->leftJoin('activity_contact', 'contacts.id', '=', 'activity_contact.contact_id');
$builder->leftJoin('activities', 'activity_contact.activity_id', '=', 'activities.id');
$builder->groupBy('contacts.id');
$builder->orderBy('activities.happened_at', 'desc');
$builder->select(['*', 'contacts.id as id']);
return $builder;
case 'lastactivitydateOldtoNew':
$builder->leftJoin('activity_contact', 'contacts.id', '=', 'activity_contact.contact_id');
$builder->leftJoin('activities', 'activity_contact.activity_id', '=', 'activities.id');
$builder->groupBy('contacts.id');
$builder->orderBy('activities.happened_at', 'asc');
$builder->select(['*', 'contacts.id as id']);
return $builder;
default:
return $builder->orderBy('first_name', 'asc');
}
}