public static function reports_total_on_item($fee_element_id, $search_by) { $table = 'fee_sch_' . session()->get('current_session') . '_' . session()->get('current_term'); $total = 0; $fee_schedules = DB::table($table)->where('fee_element_id', $fee_element_id)->lists('amount', 'fee_schedule_code'); foreach ($fee_schedules as $fee_schedule_code => $amount) { $none_exempted_fee_elements = 0; $exempted_fee_elements = 0; $invoices = \DB::table('invoices_' . \Session::get('current_session') . '_' . \Session::get('current_term'))->where('fee_schedule_code', $fee_schedule_code)->get(); $none_exempted_fee_elements = count($invoices); foreach ($invoices as $invoice) { if (null !== $invoice->exempted_fee_elements) { if (in_array($fee_element_id, json_decode($invoice->exempted_fee_elements))) { $exempted_fee_elements++; } } } $total += ($none_exempted_fee_elements - $exempted_fee_elements) * $amount; } return $total; }