SPKNETLAB / app / Http / Controllers / KeaktifanController.php
KeaktifanController.php
Raw
<?php

namespace App\Http\Controllers;

use App\Models\Keaktifan;
use Illuminate\Http\Request;
use App\Imports\KeaktifanImport;
use App\Models\Praktikum;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Facades\Excel;
use PhpParser\Node\Stmt\TryCatch;
use Maatwebsite\Excel\Exceptions\NoTypeDetectedException;

class KeaktifanController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $keaktifans=Keaktifan::all();
        $praktikums=Praktikum::all();
        return view ('dashboards.keaktifan.index', [
            'keaktifans'=>$keaktifans,
            'praktikums'=>$praktikums,
        ]);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $praktikums=Praktikum::all();
        return view('dashboards.keaktifan.create', [
            'praktikums'=>$praktikums,
        ]);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'nim'=> 'required',
        'nama'=> 'required',
        'kodeprak'=> 'required',
        'satu'=> 'required',
        'dua'=> 'required',
        'tiga'=> 'required',
        'empat'=> 'required',
        'lima'=> 'required',
        'enam'=> 'required',
        'tujuh'=> 'required',
        'delapan'=> 'required',
        'sembilan'=> 'required',
        'sepuluh'=> 'required',
        'jumlah'=> 'required',
        'kesimpulan'=> 'required',
        ]);
    
        Keaktifan::create($request->all());
     
        return redirect()->route('adminIndexKeaktifan')
                        ->with('success','Data Telah Ditambahkan.');
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\Praktikum  $praktikum
     * @return \Illuminate\Http\Response
     */
    public function show(Keaktifan $keaktifan)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\Praktikum  $praktikum
     * @return \Illuminate\Http\Response
     */
    public function edit(Keaktifan $datakeaktifan)
    {
        $praktikums=Praktikum::all();
        return view ('dashboards.keaktifan.edit', [
                     'datakeaktifan'=>$datakeaktifan,
                     'praktikums'=>$praktikums,
        ]);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\Praktikum  $praktikum
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, keaktifan $datakeaktifan)
    {
        $request->validate([
            'nim'=> 'required',
        'nama'=> 'required',
        'kodeprak'=> 'required',
        'satu'=> 'required',
        'dua'=> 'required',
        'tiga'=> 'required',
        'empat'=> 'required',
        'lima'=> 'required',
        'enam'=> 'required',
        'tujuh'=> 'required',
        'delapan'=> 'required',
        'sembilan'=> 'required',
        'sepuluh'=> 'required',
        'jumlah'=> 'required',
        'kesimpulan'=> 'required',
        ]);
    
        $datakeaktifan->update($request->all());
    
        return redirect()->route('adminIndexKeaktifan')
                        ->with('success','Data Telah Diperbaharui.');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Models\Praktikum  $praktikum
     * @return \Illuminate\Http\Response
     */
    public function destroy(Keaktifan $datakeaktifan)
    {

        $datakeaktifan->delete();
    
        return redirect()->route('adminIndexKeaktifan')
                        ->with('success','Data Telah Dihapus.');
    }

    public function deleteAll(Request $request)
    {
        $ids = $request->ids;
        Keaktifan::whereIn('idkeaktifan',explode(",",$ids))->delete();
        
        return response()->json(['success'=>"Data Terpilih Telah Dihapus."]);
    }
    
    // public function destroymany(array $kodeprak)
    // {
    //     Kehadiran::destroy($kodeprak);
    //     return redirect()->route('adminIndexKehadiran')
    //                     ->with('success','Data Telah Dihapus.');
    // }

    public function import(Request $request){
        try { 
            Excel::import(new KeaktifanImport, $request->file('file'));
            return redirect()->back()->with('success','Data Telah Diunggah.');
        } catch(\Illuminate\Database\QueryException $ex){ 
            return redirect()->back()->with('gagal','Data pada file anda mungkin bermasalah silahkan perbarui file anda atau silahkan tambahkan data praktikum terkait terlebih dahulu karena halaman ini memiliki relasi dengan kode praktikum.');
        } catch (NoTypeDetectedException $e) {
            return redirect()->back()->with('gagal','Data haruslah file excel.');
        } catch(\PhpOffice\PhpSpreadsheet\Reader\Exception $e) {
            return redirect()->back()->with('gagal','Data haruslah file excel.');
        }
    }
}