Anons79 Mini Shell

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

<?php

namespace App\Http\Controllers;

use App\Imports\DataTpsImport;
use App\Models\Kabupaten;
use App\Models\Kecamatan;
use App\Models\Kelurahan;
use App\Models\Tp;
use App\Models\UserLog;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
use Maatwebsite\Excel\Facades\Excel;

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

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

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

        $datas = Tp::paginate(10);
        $datas->appends($_GET);
        $no = 1*$page*10-10+1;
        // return view('kelurahan.index',compact('title','kelurahan','parent','link','datas','no'));
        return view('tps.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 TPS";
        $link = "tps";
        $parent = "TPS";
        // $kelurahans = Kelurahan::orderBy('nama_kelurahan','ASC')->pluck('nama_kelurahan','id');

        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 {
            $kabupatens = Kabupaten::orderBy('nama_kabupaten','ASC')->pluck('nama_kabupaten','id');
            return view('tps.create',compact('title','parent','link','kabupatens'));
        }
        // return view('kelurahan.create',compact('title','kelurahan','parent','link','kecamatans'));

    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        try {
            $request->validate([
                'nomor' => 'required|unique:tps|max:255|string',
            ]);
            $data = new Tp;
            $data->nomor = $request->nomor;
            $data->kelurahan_id = $request->kelurahan_id;
            $data->save();
            $msg = 'Berhasil menambah data TPS '.$data->nomor;
            UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
            return redirect('tps')->with('success_message', $msg);
        } catch (Exception $e) {
            return redirect('tps')->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 TPS";
        $link = "tps";
        $parent = "TPS";
        // $kelurahans = Kelurahan::orderBy('nama_kelurahan','ASC')->pluck('nama_kelurahan','id');
        $data = Tp::find($id);
        $kabupatens = Kabupaten::orderBy('nama_kabupaten','ASC')->pluck('nama_kabupaten','id');
        // $data = Kelurahan::find($id);
        // dd();
        $kecamatans = Kecamatan::where('kabupaten_id',$data->kelurahans->kecamatan->kabupaten_id)->orderBy('nama_kecamatan','ASC')->pluck('nama_kecamatan','id');
        $kelurahans = Kelurahan::where('kecamatan_id',$data->kelurahans->kecamatan_id)->orderBy('nama_kelurahan','ASC')->pluck('nama_kelurahan','id');
        // return view('kelurahan.edit',compact('title','kelurahan','parent','link','kecamatans','data'));
        return view('tps.edit',compact('title','parent','link','kabupatens','kecamatans','kelurahans','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 = Tp::find($id);
            if($data->nomor != $request->nomor) {
                $rules['nomor'] = 'required|unique:tps|max:255|string';
            } else {
                $rules['nomor'] = 'required|max:255|string';
            }

            $request->validate($rules);

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

    }

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

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

    public function import(Request $request)
    {
        Session::put('alert_import',[]);
        // ini_set('max_execution_time', 3600);
        Excel::import(new DataTpsImport,request()->file('file'));
        $msg = 'Berhasil mengimport data excel dengan nama '.$request->file->getClientOriginalName();
        UserLog::create(['user_id'=>Auth::user()->id,'keterangan'=>$msg]);
        return redirect('tps/import')->with('success_message', $msg);

    }

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

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