<?php
namespace App\Http\Livewire;
use App\Helpers\Helper;
use App\Models\Driver;
use Livewire\Component;
use Livewire\WithPagination;
class Drivers extends Component
{
use WithPagination;
public $searchTerms;
//nama field
public $nama_driver, $no_hp_driver,$keterangan_driver,$uuid;
//0 = tambah, 1 = edit
public $action = 0;
//keterangan halaman
public $title = "Driver";
public $link = "/driver";
/**
* The attributes that are mass assignable.
*
* @var array
*/
public function render()
{
if(!Helper::cekAkses($this->title,"Lihat")){
session()->flash('error', 'Anda tidak mempunyai akses');
return view('livewire.402');
}
//$this->drivers = Driver::paginate(10);
$searchTerms = '%'.$this->searchTerms.'%';
return view('livewire.driver.drivers',[
'drivers' => Driver::where('nama_driver','LIKE',$searchTerms)
->orWhere('no_hp_driver','LIKE',$searchTerms)
->orWhere('keterangan_driver','LIKE',$searchTerms)
->paginate(10),
]);
}
/**
* The attributes that are mass assignable.
*
* @var array
*/
public function create()
{
if(!Helper::cekAkses($this->title,"Tambah")){
session()->flash('error', 'Anda tidak mempunyai akses');
return;
}
$this->resetInputFields();
$this->action = 0;
}
/**
* The attributes that are mass assignable.
*
* @var array
*/
public function resetInputFields(){
$this->uuid = '';
$this->nama_driver = '';
$this->no_hp_driver = '';
$this->keterangan_driver = '';
}
/**
* The attributes that are mass assignable.
*
* @var array
*/
public function store()
{
$this->validate([
'nama_driver' => 'required',
'no_hp_driver'=>'required',
]);
try {
$data = Driver::updateOrCreate(['id' => $this->uuid], [
'nama_driver' => $this->nama_driver,
'no_hp_driver'=>$this->no_hp_driver,
'keterangan_driver'=>$this->keterangan_driver
]);
if($this->action == 0){
\Helper::addLog("Menambah Driver ".$data->nama_driver);
} else {
\Helper::addLog("Mengubah Driver ".$data->nama_driver);
}
session()->flash('success',
$this->id ? $this->nama_driver.' berhasil di simpan' : $this->nama_driver.' berhasil di simpan');
if($this->action == 0){
$this->resetInputFields();
}
} catch (\Throwable $th) {
session()->flash('error', 'data gagal di simpan');
$this->emit('dataStore',false);
}
$this->emit('dataStore',true);
}
/**
* The attributes that are mass assignable.
*
* @var array
*/
public function edit($uuid)
{
if(!Helper::cekAkses($this->title,"Ubah")){
session()->flash('error', 'Anda tidak mempunyai akses');
return;
}
$driver = Driver::findOrFail($uuid);
$this->uuid = $uuid;
$this->nama_driver = $driver->nama_driver;
$this->no_hp_driver = $driver->no_hp_driver;
$this->keterangan_driver = $driver->keterangan_driver;
$this->action = 1;
$this->emit('edit');
}
/**
* The attributes that are mass assignable.
*
* @var array
*/
public function delete($uuid)
{
if(!Helper::cekAkses($this->title,"Hapus")){
session()->flash('error', 'Anda tidak mempunyai akses');
return;
}
$data = Driver::find($uuid);
$data->delete();
\Helper::addLog("Menghapus Driver ".$data->nama_driver);
session()->flash('message', 'driver Deleted Successfully.');
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]