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) { $invoices = FinancialInvoice::with('student')->where('type', 'credit')->orderBy('id', 'desc'); if ($request->has('transaction_wid')) { $invoices->where('transaction_wid', 'LIKE', "%" . $request->input('transaction_wid') . "%"); } if ($request->has('student_id')) { $invoices->where('student_id', $request->input('student_id')); } $filter_semester_id = 0; if (request('semester_id')) { $filter_semester_id = request('semester_id'); } else { $filter_semester_id = semester()->id; } if ($request->has('semester_id')) { $invoices->where('semester_id', $filter_semester_id); } $semesters = Semester::select(\DB::raw('CONCAT(academycycle_semesters.name , "-", academycycle_years.name) as name , academycycle_semesters.id as id'))->join('academycycle_years', 'academycycle_years.id', '=', 'academycycle_semesters.academycycle_year_id')->pluck('name', 'id')->toArray(); $per_page = request('per_page') ? request('per_page') : 50; $invoices = $invoices->paginate($per_page); $invoices->appends($request->except("page")); return view('financials::invoices.index', compact('invoices', 'semesters')); }