<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Opd;
use App\Models\MasterUrusan;
use App\Models\BidangUrusan;
use App\Models\BidangUrusanOpd;
use App\Helpers\Helper;
use Illuminate\Support\Facades\DB;
use Str;
class OpdController extends Controller
{
public function __construct(){
$this->middleware('role:admin')->only(['create','store','edit','update','destroy']);
}
public function index()
{
$opd = Opd::orderBy('kode', "ASC")->get();
$title = "OPD";
$url = "opd";
$menu = "Master Data";
return view('opd.index', compact('title', 'url', 'menu', 'opd'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$title = "OPD";
$url = "opd";
$menu = "Master Data";
return view('opd.create', compact('title', 'url', 'menu'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
// dd(Helper::formatPaguKomitmen($request->pagu_komitmen));
$opd = Opd::create([
'nama_perangkat_daerah' => $request->nama_perangkat_daerah,
'kode' => trim($request->kode),
'kategori' => $request->kategori,
'pagu_komitmen_baru' => Str::replace(',','',Helper::formatPaguKomitmen($request->pagu_komitmen)),
]);
// Helper::addUserLog('menambah data Perangkat Daerah '.$request->nama_perangkat_daerah,$opd->toArray());
return redirect(route('opd.index'))->with('success', 'Data Berhasil Ditambah');
}
/**
* 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)
{
$opd = Opd::find($id);
$title = "OPD";
$url = "opd";
$menu = "Master Data";
return view('opd.edit', compact('title', 'url', 'menu', 'opd'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$opd = Opd::find($id);
// $old = $opd->toArray();
$opd->update([
'nama_perangkat_daerah' => $request->nama_perangkat_daerah,
'kode' => $request->kode,
'kategori' => $request->kategori,
'pagu_komitmen_baru' => Str::replace(',','',Helper::formatPaguKomitmen($request->pagu_komitmen)),
]);
return redirect(route('opd.index'))->with('success', 'Data Berhasil Diubah');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
try {
$opd = Opd::find($id);
$nama_perangkat_daerah = $opd->nama_perangkat_daerah;
$opd->delete();
Helper::addUserLog('menghapus data Perangkat Daerah '.$nama_perangkat_daerah,$opd->toArray());
} catch (\Illuminate\Database\QueryException $e) {
if($e->errorInfo[1] == 1451){
return redirect(route('opd.index'))->with('gagal', 'Data Masih Digunakan');
}
}
return redirect(route('opd.index'))->with('success', 'Data Berhasil Dihapus');
}
public function getOpd()
{
$opd = Opd::with('urusan', 'urusan.masterUrusan')->get();
// Ignore Relationship Because Appends
$opd->each(function ($pd) {
$pd->setAppends(['anggaran_apbd']);
$pd->urusan->each(function ($un) {
$un->setAppends(['anggaran_apbd']);
$un->bidangUrusan->each(function ($bun) {
$bun->setAppends([]);
});
$un->masterUrusan->setAppends([]);
});
});
return response()->json([
'status' => 'success',
'data' => $opd,
]);
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]