Activity Log Pada Master Data .Tambah ,Ubah,Hapus

Saya akan memper lihat kan cara coding Activity Log di bagian Controller Store agar bisa kita lihat di database ketika kita tambah apa dan siapa yang nambah kita akan tahu siapa yang nambah lalu ketika edit kita juga bisa lihat di database nya siapa yang ngedit nya dan delete atau hapus kita juga bisa lihat siaapa yang menghapus  ,mari kita simak gambar di bawah.

GAMBAR"" 1

GAMBAR"" 2

Nah kita bisa lihat di database nya siapa yang nambah dan siapa yang edit atau pun delet , sekarang kita lanjut ke codingan nya.

<?php

namespace App\Http\Controllers;

use App\Http\Traits\MaskMoney;

use Illuminate\Http\Request;

use App\Models\Biaya;

use View;

use Yajra\DataTables\DataTables;

use App\Models\KelompokBiaya;

class BiayaController extends Controller

{

    use MaskMoney;

    protected $model;

    protected $title      = 'Biaya';

    protected $module     = 'Biaya';

    protected $view       = 'biaya.';

    protected $route      = 'biaya.';

    protected $permission = '-biaya';

    public function __construct(Biaya $model)

    {

        $this->model = $model;

        View::share('title', $this->title);

        View::share('module', $this->module);

        View::share('view', $this->view);

        View::share('route', $this->route);

        View::share('permission', $this->permission);

        $this->middleware('permission:' . 'manage' . $this->permission)->only('index');

        $this->middleware('permission:' . 'create' . $this->permission)->only('store');

        $this->middleware('permission:' . 'edit' . $this->permission)->only('edit');

        $this->middleware('permission:' . 'delete' . $this->permission)->only('destroy');

    }

    public function user()

    {

        return auth()->user();

    }

    public function index(Request $request)

    {

        if (\Auth::user()->isAbleTo('manage' . $this->permission)) {

            $kelompokbiaya = KelompokBiaya::orderBy('id', 'asc')->pluck('nama_kelompok', 'id')->toArray();

            if ($request->ajax()) {

                $data = Biaya::with('kelompok_biaya')->select();

                return DataTables::of($data)

                    ->addColumn('action', function ($data) {

                        return view('datatables.action', [

                            'model' => $data,

                            'can_edit' => 'edit-biaya',

                            'can_delete' => 'delete-biaya',

                            'form_url' => route('biaya.destroy', $data->id),

                            'edit_url' => route('biaya.edit', $data->id),

                            'confirm_message' => 'Yakin mau menghapus ' . $data->name . '?'

                        ]);

                    })

                    ->editColumn('harga', function ($data) {

                        return $this->rupiah($data->harga);

                    })

                    ->editColumn('jenis_kendaraan', function ($data) {

                        if ($data->jenis_kendaraan == 'motor') {

                            return '<span class="badge badge-danger">Motor</span>';

                        } else {

                            return '<span class="badge badge-success">Mobil</span>';

                        }

                    })

                    ->addIndexColumn()

                    ->setRowId(function ($data) {

                        return $data->id;

                    })

                    ->rawColumns(['status', 'jenis_kendaraan'])

                    ->make(true);

            }

            return view($this->view . 'index')->with(compact('kelompokbiaya'));

        } else {

            return redirect()->back()->with('error', 'Permission denied.');

        }

    }

    public function store(Request $request)

    {

        $status = false;

        try {

            if ($request->id == null) {

                // dd($request->all());

                $validator = \Validator::make(

                    $request->all(),

                    [

                        'kelompok_biaya_id' => 'required',

                        'nama_biaya' => 'required|unique:biayas,nama_biaya',

                        'jenis_kendaraan' => 'required',

                        'harga' => 'required',

                    ],

                    [

                        'kelompok_biaya_id.required' => 'Silahkan Pilih Klompok Biaya !',

                        'nama_biaya.required' => 'Silahkan Mansukan Nama Biaya !',

                        'nama_biaya.unique' => 'Nama Biaya Sudah Pernah Diinput !',

                        'jenis_kendaraan.required' => 'Silahkan Pilih Jenis Kendaraan !',

                        'harga.required' => 'Silahkan Masukan Harga !',

                    ]

                );

            } else {

                $validator = \Validator::make(

                    $request->all(),

                    [

                        'nama_biaya' => 'required|unique:biayas,nama_biaya,' . $request->id,

                    ],

                    [

                        'nama_biaya.required' => 'Silahkan Mansukan Nama Biaya !',

                        'nama_biaya.unique' => 'Nama Biaya Sudah Pernah Diinput !',

                    ]

                );

            }

            if ($validator->fails()) {

                $messages = $validator->getMessageBag();

                throw new \Exception($messages->first());

            }

            $req_data = [

                'kelompok_biaya_id' => $request->kelompok_biaya_id,

                'nama_biaya' => $request->nama_biaya,

                'jenis_kendaraan' => $request->jenis_kendaraan,

                'harga' => $this->convert_rupiah($request->harga),

            ];

            if ($request->id == null) {

                // New Create

                $biaya = $this->model->create($req_data);

                activity()

                    ->causedBy($this->user())

                    ->performedOn($biaya)

                    ->event('create')

                    ->withProperties([

                        'title' => $this->title,

                        'type'  => 'create'

                    ])->log('Create ' . $this->title);

                $data['message'] = ' Biaya Berhasil disimpan !';

            } else {

                // Update

                $biaya = $this->model::find($request->id);

                $biaya->update($req_data);

                activity()

                ->causedBy($this->user())

                ->performedOn($biaya)

                ->event('edit')

                ->withProperties([

                    'title' => $this->title,

                    'type'  => 'edit'

                ])->log('Edit ' . $this->title);

                $data['message'] = ' Biaya Berhasil diupdate !';

            }

            $status = true;

            $response = [

                'status' => $status,

                'data' => $data

            ];

            return response()->json($response);

        } catch (\Exception $err) {

            $data['message'] = $err->getMessage();

            $response = [

                'data' => $data,

                'status' => $status

            ];

            return response()->json($response);

        } catch (\Exception $err) {

            return redirect()->route($this->route . 'index')->with('success', ' Berhasil disimpan !');

        }

    }

    public function edit($id)

    {

        $status = false;

        try {

            $biaya = Biaya::find($id);

            $kelompokbiaya = KelompokBiaya::orderBy('id', 'asc')->pluck('nama_kelompok', 'id')->toArray();

            $biaya->harga = $this->rupiah($biaya->harga);

            $status = true;

            $data['view'] = view('biaya.edit', compact('biaya','kelompokbiaya'))->render();

            $response = [

                'status' => $status,

                'data' => $data

            ];

            return response()->json($response);

        } catch (\Exception $er) {

            $data['message'] = $er->getMessage();

            $response = [

                'status' => $status,

                'data' => $data

            ];

            return response()->json($response);

        }

    }

    public function destroy($id)

    {

        $status = false;

        try {

            $biaya = $this->model::find($id);

            activity()

                ->causedBy(auth()->user())

                ->performedOn($biaya)

                ->event('delete')

                ->withProperties([

                    'title' => $this->title,

                    'type'  => 'destroy'

                ])->log('Delete ' . $this->title . ' "' . $biaya->kelompok_biaya_id . '"');

            $biaya->delete();

            $status = true;

            $data['message'] = ' Biaya Berhasil dihapus !';

            $response = [

                'status' => $status,

                'data' => $data

            ];

            return response()->json($response);

        } catch (\Exception $er) {

            $data['message'] = $er->getMessage();

            $response = [

                'status' => $status,

                'data' => $data

            ];

            return response()->json($response);

        }

    }

}

 

 

 

 

 

 

 

 

Related Articles

Comments