middleware('auth'); $this->middleware('permission:audit_trail-list', ['only' => ['index', 'search', 'patient_timeline', 'user_timeline']]); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request) { $audits = Audit::with('user') ->where('created_at', '>=', Carbon::now()->subDay()) ->orderBy('created_at', 'desc') ->paginate(100); if ($audits->count() <= 0) { flash("There are no records in the audit trail")->error(); } // users with activity $user_id_array = DB::table('audits') ->groupBy('user_id') ->select('user_id') ->get() ->toArray(); $user_id = array(count($user_id_array)); foreach ($user_id_array as $value) { $user_id[$value->user_id] = get_full_name($value->user_id, 'id', 'first_name', 'last_name', 'users'); } // remove the count from the array unset($user_id[0]); // add --select-- $user_id = ['all' => 'ALL'] + $user_id; // users with activity $action_performed_array = DB::table('audits') ->groupBy('event') ->select('event') ->get() ->toArray(); $action_performed = array(count($action_performed_array)); foreach ($action_performed_array as $value) { $action_performed[$value->event] = ucwords($value->event); } // remove the count from the array unset($action_performed[0]); // add --select-- $action_performed = ['all' => 'ALL'] + $action_performed; // users with activity $records_affected_array = DB::table('audits') ->groupBy('auditable_type') ->select('auditable_type') ->get() ->toArray(); $records_affected = array(count($records_affected_array)); foreach ($records_affected_array as $value) { $record = str_replace('Streamline\\', '', $value->auditable_type); /*================ show better text on forming the drop down ===========*/ $cleaned_model_name = str_replace('Streamline\\', '', $value->auditable_type); $cleaned_model_name = preg_split('/(?=[A-Z])/', $cleaned_model_name); $spaced_model_name = implode(' ', $cleaned_model_name); /*========================================================*/ $records_affected[$record] = $spaced_model_name; } // remove the count from the array unset($records_affected[0]); // add --select-- $records_affected = ['all' => 'ALL'] + $records_affected; // get all first names $first_names = DB::table('users')->pluck('first_name', 'id'); // get all last names $last_names = DB::table('users')->pluck('last_name', 'id'); return view('audit_trail.index', compact([ 'audits', 'first_names', 'last_names', 'user_id', 'action_performed', 'records_affected' ])); } public function audit_trail_print(Request $request) { $audit_trail_values = json_decode($request->data, 1); $hospitalInfo = DB::table('hospital_information')->find(1); $receipt_date = date('Y-m-d h:i:s'); $data = [ 'hospitalInfo' => $hospitalInfo, 'audit_trail' => $request->data, 'receipt_data' => $receipt_date ]; $audit_trail = json_decode($data['audit_trail'])->data; //return view('audit_trail.audit_trail_print', compact('audit_trail')); $pdf = SnappyPDF::loadView('audit_trail.audit_trail_print', compact('audit_trail')) ->setOrientation('portrait') ->setOption('margin-bottom', 7) ->setOption('margin-top', 5) ->setOption('footer-html', 'Stre@mline'); return $pdf->inline('Audit Trail' . date(" d-m-y h:ia") . '.pdf'); } public function failed_login_print(Request $request){ $audit_trail_values = json_decode($request->data, 1); $hospitalInfo = DB::table('hospital_information')->find(1); $receipt_date = date('Y-m-d h:i:s'); $data = [ 'hospitalInfo' => $hospitalInfo, 'failed_login_data' => $request->data, 'receipt_data' => $receipt_date ]; $failed_login_data = json_decode($data['failed_login_data'])->data; //return view('audit_trail.failed_login_print', compact('data', 'failed_login_data')); $pdf = SnappyPDF::loadView('audit_trail.failed_login_print', compact('failed_login_data')) ->setOrientation('portrait') ->setOption('margin-bottom', 7) ->setOption('margin-top', 5) ->setOption('footer-html', 'Stre@mline'); return $pdf->inline('Audit Trail' . date(" d-m-y h:ia") . '.pdf'); } public function online_user_print(Request $request){ $audit_trail_values = json_decode($request->data, 1); $hospitalInfo = DB::table('hospital_information')->find(1); $receipt_date = date('Y-m-d h:i:s'); $data = [ 'hospitalInfo' => $hospitalInfo, 'audit_trail' => $audit_trail_values, 'receipt_data' => $receipt_date ]; $online_users = $audit_trail_values['data']; //return view('audit_trail.online_user_print', compact('online_users')); $pdf = SnappyPDF::loadView('audit_trail.online_user_print', compact('online_users')) ->setOrientation('portrait') ->setOption('margin-bottom', 7) ->setOption('margin-top', 5) ->setOption('footer-html', 'Stre@mline'); return $pdf->inline('Audit Trail' . date(" d-m-y h:ia") . '.pdf'); } /** * Return audit table. * * @return \Illuminate\Http\Response */ public static function return_audit_table() { $audits = Audit::with('user')->orderBy('created_at', 'desc')->paginate(100); echo " Old values
| {{ format_key($key) }} | $patient = Streamline\Models\Patient::where('id', $value)->first(); $user = Streamline\Models\User::where('id', $value)->first(); if($patient->id == $value && $key == 'patient_id'){{ $patient ? $patient->first_name : '' }} {{ $patient ? $patient->last_name : '' }} | @elseif($key == 'updated_by' || $key == 'created_by' || $key == 'staff_id'){{ $user ? $user->first_name : '' }} {{ $user ? $user->last_name : '' }} | @else{{ $value }} | @endif