Anons79 Mini Shell

Directory : /home/aplikasiposinfo/.trash/app.2/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/.trash/app.2/Http/Controllers/PemangkuController.php

<?php

namespace App\Http\Controllers;

use Exception;
use Throwable;
use App\Models\Log;
use App\Models\Target;
use App\Models\Jabatan;
use App\Models\Tagihan;
use App\Models\Golongan;
use App\Models\IndukOpd;
use App\Models\Pemangku;
use App\Models\Pelunasan;
use App\Models\UptDaerah;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Yajra\DataTables\Facades\DataTables;

class PemangkuController extends Controller
{
    protected $routeName = 'pemangku';
    protected $viewName = 'pemangku';
    protected $title = 'Pemangku';
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        
        
        
        $title = $this->title;
        $route = $this->routeName;
        $induk_opd_arr = IndukOpd::pluck('nama', 'id');
        if(Auth::user()->roles->first()->name !== "Admin"){
            $induk_opd_arr = IndukOpd::where('id', Auth::user()->induk_opd_id)->pluck('nama', 'id');
        }
        $golongan = Golongan::pluck('nama', 'id');
        return view('pemangku.index', compact('title', 'route', 'induk_opd_arr', 'golongan'));
    }

    public function dataTable(Request $request)
    {
        $model = Jabatan::where('induk_opd_id', $request->induk_opd)->get();

        $modelArr = [];

        $nameArrCheck = [];

        $idArrCheck = [];

        foreach ($model as $key => $value) {
            if($value->descendants()->count() > 0){
                $variable = $value->descendantsAndSelf()->get();
                foreach ($variable as $key => $value1) {
                    # code...
                    if(!in_array($value1->nama, $nameArrCheck)){
                            array_push($nameArrCheck, $value1->nama);
                            array_push($modelArr, $value1);
                        }
                }
            } else {
                if($value->descendants()->count() == 0 && !in_array($value->nama, $nameArrCheck)){
                    array_push($modelArr, $value);
                    array_push($nameArrCheck, $value->nama);
                }
            }
        }
        $modelArr = collect((object) $modelArr);
        $modelArr = $modelArr->sortBy('path');
        $datatables = DataTables::of($modelArr)
        ->addColumn('jabatan', function($modelArr){
            $char = $modelArr->level * $modelArr->level * 4;
            $charRes = $char . 'px';
           return "<span style='padding-left:$charRes'>$modelArr->nama</span>";
        })
        ->addColumn('nip', function($modelArr){
            if($modelArr->Pemangku){
                return $modelArr->Pemangku->nip;
            } else {
                return "-";
            }

        })
        ->addColumn('nama', function($modelArr){
            if($modelArr->Pemangku){
                return $modelArr->Pemangku->nama;
            } else {
                return "-";
            }

        })
        ->addColumn('golongan', function($modelArr){
            if($modelArr->Pemangku){
                if($modelArr->Pemangku->Golongan) {
                    return $modelArr->Pemangku->Golongan->nama;
                } else {
                    return "GFRIEND";
                }
            } else {
                return "-";
            }
        })
        ->addColumn('action', function($modelArr){
            $route = 'pemangku';
            $data = $modelArr;
            return view('layouts.includes.table-action-pemangku',compact('data','route'));
        })
        ->rawColumns(['jabatan']);
        return $datatables->make(true);
    }
    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
        $title = $this->title;
        $route = $this->routeName;
        $datas =  UptDaerah::pluck('nama_daerah', 'id');
        $year = date('Y');
        return view('target.create', compact('title', 'route', 'datas', 'year'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
        try{
            DB::beginTransaction();
            $Pemangku = Pemangku::create($request->all());
            Log::create([
                'pengguna' => Auth::user()->nama,
                'kegiatan' => "Menambah Data Pemangku"
            ]);
            DB::commit();
            return redirect($this->routeName)->with(['success'=>'Berhasil Menambah Data Pemangku: '.$Pemangku->id]);
        } catch (Throwable $th){
            DB::rollback();
            return redirect()->back()->with(['error'=>'Gagal Menambah Data Pemangku : '.$th->getMessage()])->withErrors($request->all());
        }
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
        $datas = Target::select("*")->where("id", "=", $id)->get();
        $title = $this->title;
        $route = $this->routeName;
        $year = date('Y');
        $daerahs = UptDaerah::pluck('nama_daerah', 'id');
        return view('target.edit', compact('datas', 'title', 'route', 'year', 'daerahs'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
       
        $Pemangku = Pemangku::findOrFail($id);
        DB::beginTransaction();
        try{
            $Pemangku->update([
                'nama' => $request->nama,
                'nip' => $request->nip,
                'golongan_id' => $request->golongan_id
            ]);
            Log::create([
                'pengguna' => Auth::user()->nama,
                'kegiatan' => "Edit Pemangku"
            ]);
            DB::commit();
            return redirect($this->routeName)->with(['success'=>'Berhasil Mengubah data pemangku : '.$Pemangku->id]);
        } catch(Exception $e){
            return redirect()->back()->with(['error'=>'Gagal Mengubah Data Pemangku : '.$e->getMessage()])->withErrors($request->all());
        }
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id, Request $request)
    {
         try{
            $query = Pemangku::findOrFail($id);
            $query->delete();
            Log::create([
                'pengguna' => Auth::user()->nama,
                'kegiatan' => "Hapus Pemangku"
            ]);
            return redirect($this->routeName)->with(['success'=>'Berhasil Menghapus Pemangku : '.$query->nama]);
        } catch (\Exception $e){
            return redirect()->back()->with(['error'=>'Gagal Menghapus Pemangku : '.$e->getMessage()])->withErrors($request->all());
        }
    }
    
    public function api($id){

        $jabatan = Jabatan::find($id);
        $Pemangku = Pemangku::find($id);
        $golongan = Golongan::all();
        if($jabatan){
            return response()->json([
                'status' => 'success',
                'golongan' => $golongan,
                'pemangku' => $Pemangku
            ]);
        } else {
            return response()->json([
                'status' => 'failure',
                'data' => "Kesalahan terjadi saat mengambil data jabatan"
            ]);
        }
    }
}

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