Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/astra.aplikasipos.info/laravel_backend/app/Http/Livewire/
Upload File :
Current File : /home/aplikasiposinfo/www/astra.aplikasipos.info/laravel_backend/app/Http/Livewire/Transaksis.php

<?php

namespace App\Http\Livewire;

use App\Helpers\Helper;
use App\Models\Transaksi;
use App\Models\DetailTransaksi;
use App\Models\Armada;
use App\Models\User;
use App\Models\Dealer;
use App\Models\Motor;
use Livewire\Component;
use Livewire\WithPagination;
use Illuminate\Support\Facades\Validator;
use Livewire\WithFileUploads;
use Illuminate\Support\Str;
use PhpOffice\PhpSpreadsheet\IOFactory;

class Transaksis extends Component
{   
    use WithPagination;
    use WithFileUploads;

    public $searchTerms;

    //nama field
    public $uuid="",
    $kd_transaksi,
    $tgl_transaksi,
    $tgl_muat,
    $tgl_berangkat,
    $tgl_datang,
    $tgl_selesai,
    $penerima,
    $no_hp,
    $status,
    $user_id,
    $armada_id,
    $dealer_id,
    $motor_id;
    

    public $users;
    public $armadas;
    public $dealers;
    public $motors;

    //0 = tambah, 1 = edit
    public $action = 0;

    //keterangan halaman
    public $title = "Transaksi";
    public $link = "/transaksi";
    
    public $hakAkses = [];
  
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    public function render()
    {           
        $this->hakAkses = Helper::cekAkses([
            [$this->title=>'Lihat'],//0
            [$this->title=>'Tambah'],//1
            [$this->title=>'Ubah'],//2
            [$this->title=>'Hapus']//3
        ],null,true);

        if(!$this->hakAkses[0]){
            session()->flash('error', 'Anda tidak mempunyai akses');
            return view('livewire.402');
        }
        $this->users = User::where(['posisi' => 'Ekspedisi', 'status_kerja' => 'no'])->whereHas('absen', function($q){
            $q->where('tanggal', date('Y-m-d'));
        })->get();
        $this->armadas = Armada::all();
        $this->dealers = Dealer::all();
        $this->motors = Motor::orderBy('nama_motor', 'ASC')->get();
        $searchTerms = '%'.$this->searchTerms.'%';
        return view('livewire.transaksi.transaksis',[
            'transaksis' => Transaksi::with('user', 'armada', 'dealer')->where('kd_transaksi','LIKE',$searchTerms)
            ->orWhere('status','LIKE',$searchTerms)
            ->orWhere('penerima','LIKE',$searchTerms)
            ->orWhere('tgl_transaksi','LIKE',$searchTerms)
            ->orderBy('created_at','DESC')
            ->paginate(10),
        ]);

        return view('livewire.transaksi.transaksis');
    }
  
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    public function create()
    {   
        if(!$this->hakAkses[1]){
            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->kd_transaksi = \Helper::kodeTransaksi();
        $this->tgl_transaksi = date('Y-m-d H:i:s');
        $this->penerima = '';
        $this->no_hp = '';
        $this->user_id = $this->users[0]->id ?? null;
        $this->armada_id = $this->armadas[0]->id ?? null;
        $this->dealer_id = $this->dealers[0]->id ?? null;
        $this->motor_id = NULL;
    }
     
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    public function store()
    {   
        $this->validate([
            'kd_transaksi'=>'required',
            'tgl_transaksi'=>'required',
            'penerima'=>'required',
            'no_hp'=>'required',
            'user_id'=>'required',
            'armada_id'=>'required',
            'dealer_id'=>'required',
        ]);        

        try {
            if($this->action == 0){
                $this->uuid = (string) Str::uuid();
            }

            if($this->action == 0){
                $transaksi = Transaksi::create([
                    'id'=>$this->uuid,
                    'kd_transaksi' => $this->kd_transaksi,
                    'tgl_transaksi'=>$this->tgl_transaksi,
                    'penerima'=>$this->penerima,
                    'no_hp'=>$this->no_hp,
                    'user_id' => $this->user_id,
                    'armada_id' => $this->armada_id,
                    'dealer_id' => $this->dealer_id
                ]);

                foreach ($this->motor_id as $motor) {
                    DetailTransaksi::create([
                        'transaksi_id' => $transaksi->id,
                        'motor_id' => $motor,
                    ]);
                }

                \Helper::addLog("Menambah Transaksi ".$transaksi->kd_transaksi);
            } else {
                Transaksi::updateOrCreate(['id' => $this->uuid], [
                    'kd_transaksi' => $this->kd_transaksi,
                    'tgl_transaksi'=>$this->tgl_transaksi,
                    'penerima'=>$this->penerima,
                    'no_hp'=>$this->no_hp,
                    'user_id' => $this->user_id,
                    'armada_id' => $this->armada_id,
                    'dealer_id' => $this->dealer_id
                ]);
                \Helper::addLog("Mengubah Transaksi ".$transaksi->kd_transaksi);
            }

            // Update Status Kerja User
            $user = User::find($this->user_id);
            $user->update([
                'status_kerja' => 'yes',
            ]);
            

      
            session()->flash('success', 
                $this->id ? $this->kd_transaksi.' berhasil di simpan' : $this->kd_transaksi.' berhasil di simpan');
            if($this->action == 0){
                $this->resetInputFields();
            }
            $this->emit('dataStore',true);
        } catch (\Exception $th) {
            session()->flash('error', 'data gagal di simpan : '.$th->getMessage());
            $this->emit('dataStore',false);
        }
        
    }
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    public function edit($uuid)
    {   
        if(!$this->hakAkses[2]){
            session()->flash('error', 'Anda tidak mempunyai akses');
            return;
        }
        $transaksi = Transaksi::findOrFail($uuid);
        $detailTransaksi = [];

        foreach ($transaksi->detailTransaksi as $data) {
            array_push($detailTransaksi, $data->motor_id);
        }

        
        $this->uuid = $uuid;
        $this->kd_transaksi = $transaksi->kd_transaksi;
        $this->tgl_transaksi = $transaksi->tgl_transaksi;
        $this->penerima = $transaksi->penerima;
        $this->no_hp = $transaksi->no_hp;
        $this->user_id = $transaksi->user_id;
        $this->armada_id = $transaksi->armada_id;
        $this->dealer_id = $transaksi->dealer_id;
        $this->motor_id = $detailTransaksi ?? NULL;

        $this->action = 1;
        $this->emit('edit');
    }
     
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    public function delete($uuid)
    {   
        if(!$this->hakAkses[3]){
            session()->flash('error', 'Anda tidak mempunyai akses');
            return;
        }
        $transaksi = Transaksi::find($uuid);
        $transaksi->delete();
        \Helper::addLog("Menghapus Transaksi ".$transaksi->kd_transaksi);
        session()->flash('message', 'armada Deleted Successfully.');
    }

}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]