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'));
 }