mPeraturanController.php 6.52 KB
<?php

namespace App\Http\Controllers\Backend;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Yajra\DataTables\Facades\DataTables;
use App\Models\Kategori;
use App\Models\Peraturan;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Storage;
use App\Models\Dih;

use OjiSatriani\Fungsi;
use Illuminate\Support\Carbon;
use Illuminate\Support\Str;

class mPeraturanController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        // $peraturan = Peraturan::orderBy('updated_at', 'desc')->get();
        return view ('backend.peraturan.index');
    }

    public function data(Request $request)
    {
        if ($request->ajax()) {


            // $peraturan = Peraturan::all();
            $peraturan  = Peraturan::with('kategori') -> latest('nama');
            return Datatables::of($peraturan)

            ->addIndexColumn()
            ->addColumn('lampiran', function($peraturan){
                return '<a href="'. $peraturan->file_url . '">Download</a>';
            })

            ->addColumn(
                'metadata',
                            '<center><a href="{{ url(config("master.url.admin")."/metaperaturan/".$id)  }}" class="paket" data-toggle="tooltip" data-placement="top" title="Metadata"><i class="fa fa-external-link text-info"></i></a>')

            ->addColumn(
                'action',
                            '<center>
                              <a class="edit ubah" data-toggle="tooltip" data-placement="top" title="Edit" peraturan-id="{{ $id }}">
                                  <i class="fa fa-pencil text-warning"></i>
                              </a>&nbsp &nbsp
                              <a class="delete hidden-xs hidden-sm hapus" data-toggle="tooltip" data-placement="top" title="Delete" peraturan-id="{{ $id }}">
                                  <i class="fa fa-trash text-danger"></i>
                              </a>
                            </center>'
            )

            ->rawColumns(['action', 'lampiran', 'metadata'])->make(true);

        } else {
            exit("Not an AJAX request -_-");
        }
    }

    public function data_detail(Request $request, $id)
    {
        // if ($request->ajax()) {
        //     $users = Peraturan::find($id)->user;
        //     return Datatables::of($users)
        //     ->addIndexColumn()->make(true);
        // } else {
        //     exit("Not an AJAX request -_-");
        // }
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $kategori = Kategori::pluck('nama', 'id');
        return view ('backend.peraturan.tambah', compact  ('kategori'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
     {
         $validator = Validator::make($request->all(), [

         'nama'         => 'required',
         'tahun'        => 'required',
         'nomor'        => 'required',
        ]);

    if ($validator->fails()) {
         $respon = array('status'=>false, 'pesan' => $validator->messages());
             } else {
         $path       = NULL;
         $namafile   = NULL;

         if($request->hasFile('lampiran')){
             $file = Storage::putFile('peraturan/'.date('Y').'/'.date('m').'/'.date('d'),$request->file('lampiran'));

       $request->request->add([
            'file'  =>  [
                             'disk'      => config('filesystems.default'),
                             'target'    => $file,
                         ],
      ]);
    }
         if (Peraturan::create($request->all())) {
             $respon = array('status'=>true, 'pesan' => ['msg' => 'Data berhasil disimpan']);
                     } else {
             $respon = array('status'=>false, 'pesan' => ['msg' => 'Data gagal disimpan']);
       }
  }
     return response()->json($respon);
}


    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $peraturan = Peraturan::findOrFail($id);

        return view ('backend.peraturan.index', compact('peraturan'));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $peraturan = Peraturan::find($id);
        $kategori = Kategori::pluck('nama', 'id');

        return view ('backend.peraturan.ubah', compact('peraturan','kategori'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $validator = Validator::make($request->all(), [
            'nama'                => 'required',
            'tahun'               => 'required',
            'nomor'               => 'required',


        ]);

        if ($validator->fails()) {
            $respon = array('status'=>false, 'pesan' => $validator->messages());
        } else {
            $peraturan = Peraturan::find($id);
                $update = $peraturan->update($request->all());
            if ($update) {
                $respon = array('status'=>true, 'pesan' => ['msg' => 'Data berhasil diubah']);
            } else {
                $respon = array('status'=>false, 'pesan' => ['msg' => 'Data gagal diubah']);
            }
        }
        return response()->json($respon);
    }

    public function hapus($id)
    {
        $peraturan = Peraturan::find($id);
        return view('backend.peraturan.hapus', compact('peraturan'));
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $peraturan = Peraturan::find($id);
        if ($peraturan->delete()) {
            $respon = array('status'=>true, 'pesan' => ['msg' => 'Data berhasil dihapus']);
        } else {
            $respon = array('status'=>false, 'pesan' => ['msg' => 'Data gagal dihapus']);
        }
        return response()->json($respon);

    }

    public function download($id, $gbr)
    {
        $peraturan = Peraturan::find($id);
        // dd($peraturan);
         return $peraturan->file_download;
    }
    }