Added organisation information page

This commit is contained in:
2022-02-07 11:23:32 +00:00
parent 1edd850170
commit feaf3d5813
8 changed files with 382 additions and 7 deletions

View File

@@ -148,19 +148,37 @@ class Organisation extends Model
*/
public function scopeJoinMemberCounts($query)
{
$memberCounts = DB::table('organisation_members')
->selectRaw('organisation_id, count(*) as member_count')
$memberCountsInner = DB::table('organisation_members')
->selectRaw('organisation_id, COUNT(*) AS member_count')
->groupBy('organisation_id');
$memberCounts = DB::table('organisations')
->leftJoinSub($memberCountsInner, 'member_counts_inner', function ($join) {
$join->on('member_counts_inner.organisation_id', '=', 'organisations.id');
})
->select('id AS organisation_id')
->selectRaw('COALESCE(member_count, 0) AS member_count');
$adminCounts = DB::table('organisation_members')
->selectRaw('organisation_id, count(*) as admin_count')
$adminCountsInner = DB::table('organisation_members')
->selectRaw('organisation_id, COUNT(*) AS admin_count')
->where('flag_admin', true)
->groupBy('organisation_id');
$adminCounts = DB::table('organisations')
->leftJoinSub($adminCountsInner, 'admin_counts_inner', function ($join) {
$join->on('admin_counts_inner.organisation_id', '=', 'organisations.id');
})
->select('id AS organisation_id')
->selectRaw('COALESCE(admin_count, 0) AS admin_count');
$nonAdminCounts = DB::table('organisation_members')
->selectRaw('organisation_id, count(*) as non_admin_count')
$nonAdminCountsInner = DB::table('organisation_members')
->selectRaw('organisation_id, COUNT(*) AS non_admin_count')
->where('flag_admin', false)
->groupBy('organisation_id');
$nonAdminCounts = DB::table('organisations')
->leftJoinSub($nonAdminCountsInner, 'non_admin_counts_inner', function ($join) {
$join->on('non_admin_counts_inner.organisation_id', '=', 'organisations.id');
})
->select('id AS organisation_id')
->selectRaw('COALESCE(non_admin_count, 0) AS non_admin_count');
return $query
->leftJoinSub($memberCounts, 'member_counts', function ($join) {