public function listAll($page = 1) { $toReturn = array(); if ($this->data['users']->role == "admin") { $toReturn['payments'] = \DB::table('payments')->leftJoin('users', 'users.id', '=', 'payments.paymentStudent')->select('payments.id as id', 'payments.paymentTitle as paymentTitle', 'payments.paymentDescription as paymentDescription', 'payments.paymentAmount as paymentAmount', 'payments.paymentStatus as paymentStatus', 'payments.paymentDate as paymentDate', 'payments.paymentStudent as studentId', 'users.fullName as fullName')->orderBy('id', 'DESC')->take('20')->skip(20 * ($page - 1))->get(); $toReturn['totalItems'] = payments::count(); } elseif ($this->data['users']->role == "student") { $toReturn['payments'] = \DB::table('payments')->where('paymentStudent', $this->data['users']->id)->leftJoin('users', 'users.id', '=', 'payments.paymentStudent')->select('payments.id as id', 'payments.paymentTitle as paymentTitle', 'payments.paymentDescription as paymentDescription', 'payments.paymentAmount as paymentAmount', 'payments.paymentStatus as paymentStatus', 'payments.paymentDate as paymentDate', 'payments.paymentStudent as studentId', 'users.fullName as fullName')->orderBy('id', 'DESC')->take('20')->skip(20 * ($page - 1))->get(); $toReturn['totalItems'] = payments::count(); } elseif ($this->data['users']->role == "parent") { $studentId = array(); $parentOf = json_decode($this->data['users']->parentOf, true); if (is_array($parentOf)) { while (list($key, $value) = each($parentOf)) { $studentId[] = $value['id']; } } $toReturn['payments'] = \DB::table('payments')->whereIn('paymentStudent', $studentId)->leftJoin('users', 'users.id', '=', 'payments.paymentStudent')->select('payments.id as id', 'payments.paymentTitle as paymentTitle', 'payments.paymentDescription as paymentDescription', 'payments.paymentAmount as paymentAmount', 'payments.paymentStatus as paymentStatus', 'payments.paymentDate as paymentDate', 'payments.paymentStudent as studentId', 'users.fullName as fullName')->orderBy('id', 'DESC')->take('20')->skip(20 * ($page - 1))->get(); $toReturn['totalItems'] = payments::count(); } $classes = classes::where('classAcademicYear', $this->panelInit->selectAcYear)->get(); $toReturn['classes'] = array(); foreach ($classes as $class) { $toReturn['classes'][$class->id] = $class->className; } return $toReturn; }