public function show(Request $request, $student_id) { $invoices = FinancialInvoice::with('item', 'semester')->where('student_id', $student_id); $student = Student::findOrFail($student_id); if ($request->has('semester_id')) { $invoices->where('semester_id', $request->input('semester_id')); } $invoices = $invoices->orderBy('created_at', 'ASC')->get(); $has_search = count($request->all()); $semesters = Semester::pluck('name', 'id'); $total_debit = $invoices->sum(function ($invoice) { return $invoice->type == 'debit' ? $invoice->amount : 0; }); $total_credit = $invoices->sum(function ($invoice) { return $invoice->type == 'credit' ? $invoice->amount : 0; }); if ($request->has('partial')) { return view('financials::reports._list', compact('invoices', 'student', 'has_search', 'semesters', 'total_debit', 'total_credit')); } return view('financials::reports.show', compact('invoices', 'student', 'has_search', 'semesters', 'total_debit', 'total_credit')); }
public function index(Request $request) { $exams = Exam::selectRaw('exams.*,COUNT(DISTINCT er.id) AS resultsCount,COUNT(DISTINCT eques.id) AS questionsCount')->leftJoin('exam_results AS er', function ($join) { $join->on('er.exam_id', '=', 'exams.id'); })->leftJoin('exam_questions AS eques', function ($join) { $join->on('eques.exam_id', '=', 'exams.id'); })->groupBy('exams.id')->orderBy('exams.id', 'desc'); if (request('exam_subject')) { $exams->where('subject_id', request('exam_subject')); } if (request('exam_type')) { $exams->where('type', request('exam_type')); } if ($request->has('start_at')) { $exams->whereDate('start_at', '=', $request->input('start_at')); } if (request('exam_semester')) { $exams->where('exams.semester_id', request('exam_semester')); } else { //$exams->inCurrentSemester(); } if (request('exam_year_term')) { $exams->whereIn('subject_id', explode(',', request('exam_year_term'))); } $per_page = request('per_page') ? request('per_page') : 30; $exams = $exams->paginate($per_page); $exams->appends($request->except("page")); $subjects = Subject::lists('name', 'id')->toArray(); $years = Year::lists('name', 'id')->toArray(); $semesters = Semester::pluck('name', 'id')->toArray(); $year_term = Year::join('academystructure_terms', 'academystructure_years.id', '=', 'academystructure_terms.year_id')->join('academystructure_departments', 'academystructure_terms.id', '=', 'academystructure_departments.term_id')->select(\DB::raw('CONCAT(academystructure_years.name, "-", academystructure_terms.name) as name, GROUP_CONCAT(DISTINCT(academystructure_departments.subject_ids)) as sid'))->groupBy('academystructure_terms.name', 'academystructure_years.name')->get()->toArray(); $year_term_options; foreach ($year_term as $key => &$aa) { $a = implode(',', array_unique(array_merge(json_decode(str_replace('],[', ',', $aa['sid']), TRUE)))); $year_term_options[$a] = $aa['name']; } return view('exams::exams.index', compact('exams', 'subjects', 'years', 'semesters', 'year_term_options')); }