Anons79 Mini Shell

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

<?php

namespace App\Http\Controllers;

use App\Imports\DataDPTImport;
use App\Models\Dpt;
use App\Models\Kabupaten;
use App\Models\Kecamatan;
use App\Models\Kelurahan;
use App\Models\Tp;
use App\Models\UserLog;
use Barryvdh\DomPDF\PDF;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
use Maatwebsite\Excel\Facades\Excel;

class DptController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {

        if(Request('status')) {
            $title = "DPT Belum Terdaftar";
            $link = "dpt";

            $s = '';
            $page = 1;

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

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

            if($s != "") {
                $datas = Dpt::query()->where('nama_lengkap','like','%'.$s.'%')->orWhere('nik','like','%'.$s.'%')->orWhere('alamat','like','%'.$s.'%')->orWhereHas('tp', function($u) use($s) {
                    $u->orWhereHas('kelurahans',function ($q)use($s){
                        $q->where('nama_kelurahan','like','%'.$s.'%')->orWhereHas('kecamatan',function ($q)use($s){
                            $q->where('nama_kecamatan','like','%'.$s.'%')->orWhereHas('kabupatens', function ($d) use($s) {
                                $d->where('nama_kabupaten','like', '%'.$s.'%');
                            });
                    });
                });
                })->where('status', 1)->orderBy('created_at','DESC')->paginate(10);
            } else {
                $datas = Dpt::orderBy('created_at','DESC')->where('status', 1)->paginate(10);
            }

            // if(Auth::user()->role == 1){
            //     $datas = DataWarga::where('nama_lengkap','like','%'.$s.'%')->orWhere('nik','like','%'.$s.'%')->orWhere('alamat','like','%'.$s.'%')->orWhereHas('kelurahan',function ($q)use($s){
            //         $q->where('nama_kelurahan','like','%'.$s.'%')->orWhereHas('kecamatan',function ($q)use($s){
            //         $q->where('nama_kecamatan','like','%'.$s.'%');
            //     });
            //     })->orderBy('created_at','DESC')->paginate(10);
            // } else {
            //     $datas = DataWarga::where('nama_lengkap','like','%'.$s.'%')->orWhere('nik','like','%'.$s.'%')->orWhere('alamat','like','%'.$s.'%')->orWhereHas('kelurahan',function ($q)use($s){
            //         $q->where('nama_kelurahan','like','%'.$s.'%')->orWhereHas('kecamatan',function ($q)use($s){
            //         $q->where('nama_kecamatan','like','%'.$s.'%');
            //     });
            //     })->orderBy('created_at','DESC')->where('user_id',Auth::user()->id)->paginate(10);
            // }

            $no = 1*$page*10-10+1;
            // return view('data-warga.index',compact('title','data-warga','parent','link','datas','no'));
            return view('dpt.index',compact('title','link','datas','no'));

        } else {
            $title = "DPT";
            $link = "dpt";

            $s = '';
            $page = 1;

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

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

            if($s != "") {
                $datas = Dpt::query()->where('nama_lengkap','like','%'.$s.'%')->orWhere('nik','like','%'.$s.'%')->orWhere('alamat','like','%'.$s.'%')->orWhereHas('tp', function($u) use($s) {
                    $u->orWhereHas('kelurahans',function ($q)use($s){
                        $q->where('nama_kelurahan','like','%'.$s.'%')->orWhereHas('kecamatan',function ($q)use($s){
                            $q->where('nama_kecamatan','like','%'.$s.'%')->orWhereHas('kabupatens', function ($d) use($s) {
                                $d->where('nama_kabupaten','like', '%'.$s.'%');
                            });
                    });
                });
                })->where('status', null)->orderBy('created_at','DESC')->paginate(10);
            } else {
                $datas = Dpt::orderBy('created_at','DESC')->where('status', null)->paginate(10);
            }

            // if(Auth::user()->role == 1){
            //     $datas = DataWarga::where('nama_lengkap','like','%'.$s.'%')->orWhere('nik','like','%'.$s.'%')->orWhere('alamat','like','%'.$s.'%')->orWhereHas('kelurahan',function ($q)use($s){
            //         $q->where('nama_kelurahan','like','%'.$s.'%')->orWhereHas('kecamatan',function ($q)use($s){
            //         $q->where('nama_kecamatan','like','%'.$s.'%');
            //     });
            //     })->orderBy('created_at','DESC')->paginate(10);
            // } else {
            //     $datas = DataWarga::where('nama_lengkap','like','%'.$s.'%')->orWhere('nik','like','%'.$s.'%')->orWhere('alamat','like','%'.$s.'%')->orWhereHas('kelurahan',function ($q)use($s){
            //         $q->where('nama_kelurahan','like','%'.$s.'%')->orWhereHas('kecamatan',function ($q)use($s){
            //         $q->where('nama_kecamatan','like','%'.$s.'%');
            //     });
            //     })->orderBy('created_at','DESC')->where('user_id',Auth::user()->id)->paginate(10);
            // }

            $no = 1*$page*10-10+1;
            // return view('data-warga.index',compact('title','data-warga','parent','link','datas','no'));
            return view('dpt.index',compact('title','link','datas','no'));

        }
    }

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

            // return view('data-warga.create',compact('title','data-warga','parent','link','kelurahans'));
            return view('data-warga.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)
    {

        $user = Auth::user();
        $e_ktp = null;


        $request->validate([
            'nik' => 'nullable|max:255|string',
            'e_ktp'=>'nullable|image',
            // 'nama_penghubung' => 'required|max:255|string',
            // 'no_telp_penghubung' => 'required|max:20|string',
            'nama_lengkap'=>'nullable|max:255|string',
            'alamat'=>'nullable|string',
            // 'no_telepon'=>'nullable|string|max:20',
            'rt'=>'nullable|string|max:10',
            'rw'=>'nullable|string|max:10',
            'jenis_kelamin'=>'sometimes|required',
            // 'agama'=>'sometimes|required',
            // 'kawin'=>'sometimes|required',
            // 'pekerjaan'=>'nullable|string',
            'tps_id' => 'required',


        ]);
        if ($request->hasFile('e_ktp')) {
            $e_ktp = str_replace(' ', '-', $request->nik).".".$request->e_ktp->getClientOriginalExtension();
            $request->e_ktp->move(public_path('images/e-ktp'),$e_ktp);
        }


        $data = Dpt::create([
            'nama_lengkap'=>$request->nama_lengkap,
            'nik'=>0,
            // 'user_id'=>$user->id,
            // 'e_ktp'=>$e_ktp,
            'alamat'=>$request->alamat,
            // 'no_telepon'=>$request->no_telepon,
            'tps_id'=>$request->tps_id,
            'rt'=>$request->rt,
            'usia'=>0,
            'rw'=>$request->rw,
            'jenis_kelamin'=>$request->jenis_kelamin == "Laki-laki" ? "L" : "P",
            // 'agama'=>$request->agama,
            // 'kawin'=>$request->kawin,
            // 'pekerjaan'=>$request->pekerjaan,
            // 'tempat_lahirs'=> $request->tempat_lahir,
            // 'tanggal_lahirs'=> $request->tanggal_lahir,
            // 'nama_penghubung'=>$request->nama_penghubung,
            // 'no_telp_penghubung'=>$request->no_telp_penghubung,
        ]);

        $msg = 'Berhasil menambah data DPT dengan nik '.$data->nik;
        UserLog::create(['user_id'=>$user->id,'keterangan'=>$msg]);
        return redirect('dpt')->with('success_message', $msg);
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $title = "Detail Data DPT";
        $link = "dpt";
        $parent = "Data DPT";

        $data = Dpt::find($id);
        // dd($data->kelurahan->kecamatan->kabupatens);
        // return view('data-warga.show',compact('title','data-warga','parent','link','data'));
        return view('dpt.show',compact('title','parent','link','data'));

    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $title = "Edit Data DPT";
        $link = "dpt";
        $parent = "Data Dpt";
        $kabupatens = Kabupaten::orderBy('nama_kabupaten','ASC')->pluck('nama_kabupaten','id');
        $data = Dpt::find($id);
        $kecamatans = Kecamatan::where('kabupaten_id',$data->tp->kelurahans->kecamatan->kabupaten_id)->get();
        $kelurahans = Kelurahan::where('kecamatan_id',$data->tp->kelurahans->kecamatan_id)->get();
        $tps = Tp::where('kelurahan_id',$data->tp->kelurahan_id)->get();
        // return view('data-warga.edit',compact('title','data-warga','parent','link','kelurahans','data'));
        return view('dpt.edit',compact('title','parent','link','kabupatens','kecamatans','kelurahans','data', 'tps'));

    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $data = Dpt::find($id);
        $e_ktp = $data->e_ktp;
        if($request->hasFile($request->e_ktp)){
            $e_ktp = str_replace(' ', '-', $request->nik).".".$request->e_ktp->getClientOriginalExtension();
            $request->e_ktp->move(public_path('images/e-ktp'),$e_ktp);
        }

        // dd($data);
        $data->update([
            'nama_lengkap'=>$request->nama_lengkap,
            'nik'=>$request->nik,

            'e_ktp'=>$e_ktp,
            'alamat'=>$request->alamat,
            // 'no_telepon'=>$request->no_telepon,
            'tps_id'=>$request->tps_id,
            'rt'=>$request->rt,
            'rw'=>$request->rw,
            'jenis_kelamin'=>$request->jenis_kelamin,
            // 'agama'=>$request->agama,
            // 'kawin'=>$request->kawin,
            // 'pekerjaan'=>$request->pekerjaan,
            'tempat_lahirs'=> $request->tempat_lahir,
            'tanggal_lahirs'=> $request->tanggal_lahir,
            // 'nama_penghubung'=>$request->nama_penghubung,
            // 'no_telp_penghubung'=>$request->no_telp_penghubung,
        ]);

        $msg = 'Berhasil mengubah data DPT dengan nik '.$data->nik;
        UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
        return redirect('dpt')->with('success_message', $msg);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $data = Dpt::find($id);
        $user = Auth::user();
        try {
            $data->delete();
            $msg = 'Berhasil menghapus data Dpt dengan nik '.$data->nik;
            UserLog::create(['user_id'=>$user->id,'keterangan'=>$msg]);
            return redirect('dpt')->with('success_message', $msg);
        } catch (Exception $e) {
            $msg = 'Gagal menghapus data Dpt dengan nik '.$data->nik;
            UserLog::create(['user_id'=>$user->id,'keterangan'=>$msg]);
            return redirect('dpt')->with('error_message', $msg);
        }

    }

    public function formulir($id)
    {
        $title = "Formulir Data DPT";
        $link = "dpt";
        $parent = "Data DPT";

        $data = Dpt::find($id);
        $opt = ['data' => $data];
        // $pdf = PDF::loadView('dpt.formulir', $opt);
        // return $pdf->download('formulir-dpt-'.$data->nik.'.pdf');
        // return view('data-warga.formulir',compact('title','data-warga','parent','link','data'));
        return view('dpt.formulir',compact('title','parent','link','data'));

    }

    public function importView()
    {
        $title = "Import Data DPT";
        $link = "dpt";
        $parent = "Data DPT";
        $warnings = Session::get('alert_import',[]);

        // return view('data-warga.import',compact('title','data-warga','parent','link','warnings'));
        return view('dpt.import',compact('title','parent','link','warnings'));

    }

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

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

    }
}

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