Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/isranhadikaltim.id/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/www/isranhadikaltim.id/app/Http/Controllers/KelurahanController.php

<?php

namespace App\Http\Controllers;

use App\Imports\DataKelurahanImport;
use App\Models\Kabupaten;
use Illuminate\Http\Request;
use App\Models\Kelurahan;
use App\Models\Kecamatan;
use Illuminate\Http\UploadedFile;
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Client;
use App\Models\UserLog;
// use Auth;
use Exception;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
use Maatwebsite\Excel\Facades\Excel;

class KelurahanController extends Controller
{

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $title = "Kelurahan";
        $link = "kelurahan";
        $parent = "Master Data";
        $s = '';
        $page = 1;

        if(isset($_GET['s'])){
            $s = $_GET['s'];
        }

        if(isset($_GET['page'])){
            $page = $_GET['page'];
        }

        $datas = Kelurahan::where('nama_kelurahan','like','%'.$s.'%')->orWhereHas('kecamatan',function ($q)use($s){
            $q->where('nama_kecamatan','like','%'.$s.'%')->orWhereHas('kabupatens', function ($k) use ($s) {
                $k->where('nama_kabupaten','like', '%'.$s.'%');
            });
        })->orWhere('id','like','%'.$s.'%')->orWhere('nama_kelurahan','like','%'.$s.'%')->orderBy('created_at','DESC')->paginate(10);
        $datas->appends($_GET);
        $no = 1*$page*10-10+1;
        // return view('kelurahan.index',compact('title','kelurahan','parent','link','datas','no'));
        return view('kelurahan.index',compact('title','parent','link','datas','no'));

    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $title = "Tambah Data Kelurahan";
        $link = "kelurahan";
        $parent = "Kelurahan";
        if(Request('kabupaten')) {
            $datas = Kecamatan::where('kabupaten_id', Request('kabupaten'))->get();
            return response()->json([
                'data' => $datas,
            ]);
        } else {
            $kabupatens = Kabupaten::orderBy('nama_kabupaten','ASC')->pluck('nama_kabupaten','id');

            // return view('kelurahan.create',compact('title','kelurahan','parent','link','kecamatans'));
            return view('kelurahan.create',compact('title','parent','link','kabupatens'));
        }

    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        try {
            $request->validate([
                'nama_kelurahan' => 'required|unique:kelurahans|max:255|string',
            ]);
            $data = new Kelurahan;
            $data->nama_kelurahan = $request->nama_kelurahan;
            $data->kecamatan_id = $request->kecamatan_id;
            $data->save();
            $msg = 'Berhasil menambah data kelurahan '.$data->nama_kelurahan;
            UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
            return redirect('kelurahan')->with('success_message', $msg);
        } catch (Exception $e) {
            return redirect('kelurahan')->with('error_message', "Gagal di tambah");
        }
    }

    /**
     * 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)
    {
        $title = "Edit Data Kelurahan";
        $link = "kelurahan";
        $parent = "Kelurahan";
        $kabupatens = Kabupaten::orderBy('nama_kabupaten','ASC')->pluck('nama_kabupaten','id');
        $data = Kelurahan::find($id);
        // dd();
        $kecamatans = Kecamatan::where('kabupaten_id',$data->kecamatan->kabupaten_id)->orderBy('nama_kecamatan','ASC')->pluck('nama_kecamatan','id');
        // return view('kelurahan.edit',compact('title','kelurahan','parent','link','kecamatans','data'));
        return view('kelurahan.edit',compact('title','parent','link','kabupatens','kecamatans','data'));

    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        try {
            $rules = [];
            $data = Kelurahan::find($id);
            if($data->nama_kelurahan != $request->nama_kelurahan) {
                $rules['nama_kelurahan'] = 'required|unique:kelurahans|max:255|string';
            } else {
                $rules['nama_kelurahan'] = 'required|max:255|string';
            }

            $request->validate($rules);

            $data->nama_kelurahan = $request->nama_kelurahan;
            $data->kecamatan_id = $request->kecamatan_id;
            $data->save();
            $msg = 'Berhasil mengubah data kelurahan '.$data->nama_kelurahan;
            UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
            return redirect('kelurahan')->with('success_message', $msg);
        } catch (Exception $e) {
            return redirect('kelurahan')->with('error_message', "Gagal diubah");
        }

    }

    public function importView()
    {
        // dd("Test");
        $title = "Import Data Kelurahan";
        $link = "kelurahan";
        $parent = "Data Kelurahan";
        $warnings = Session::get('alert_import',[]);

        return view('kelurahan.import',compact('title','parent','link','warnings'));
    }

    public function import(Request $request)
    {
        Session::put('alert_import',[]);

        Excel::import(new DataKelurahanImport,request()->file('file'));
        $msg = 'Berhasil mengimport data excel dengan nama '.$request->file->getClientOriginalName();
        UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
        return redirect('kelurahan/import')->with('success_message', $msg);

    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        try {
            $data = Kelurahan::find($id);
            if(count($data->wargas) > 0){
                return redirect('kelurahan')->with('error_message', "Data tidak bisa di hapus.masih ada warga yang menggunakan kelurahan ini");
            }
            $data->delete();
            $msg = 'Berhasil menghapus data kelurahan '.$data->nama_kelurahan;
            UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
            return redirect('kelurahan')->with('success_message', $msg);
        } catch (Exception $e) {
            return redirect('kelurahan')->with('error_message', "Gagal dihapus");
        }
    }
}

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