Commit f81533e0 authored by Balqizzp's avatar Balqizzp
Browse files

up

parent c4705eaf
No related merge requests found
Pipeline #3141 failed with stages
in 3 minutes and 15 seconds
Showing with 1214 additions and 1 deletion
+1214 -1
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
[*.{yml,yaml}]
indent_size = 2
[docker-compose.yml]
indent_size = 4
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DISK=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
MEMCACHED_HOST=127.0.0.1
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_HOST=
PUSHER_PORT=443
PUSHER_SCHEME=https
PUSHER_APP_CLUSTER=mt1
VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
VITE_PUSHER_HOST="${PUSHER_HOST}"
VITE_PUSHER_PORT="${PUSHER_PORT}"
VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
* text=auto eol=lf
*.blade.php diff=html
*.css diff=css
*.html diff=html
*.md diff=markdown
*.php diff=php
/.github export-ignore
CHANGELOG.md export-ignore
.styleci.yml export-ignore
/.phpunit.cache
/node_modules
/public/build
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.env.backup
.env.production
.phpunit.result.cache
Homestead.json
Homestead.yaml
auth.json
npm-debug.log
yarn-error.log
/.fleet
/.idea
/.vscode
# Pinjam Ruang Fix
# Pinjamruang
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* Define the application's command schedule.
*/
protected function schedule(Schedule $schedule): void
{
// $schedule->command('inspire')->hourly();
}
/**
* Register the commands for the application.
*/
protected function commands(): void
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
<?php
namespace App\Exceptions;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;
class Handler extends ExceptionHandler
{
/**
* The list of the inputs that are never flashed to the session on validation exceptions.
*
* @var array<int, string>
*/
protected $dontFlash = [
'current_password',
'password',
'password_confirmation',
];
/**
* Register the exception handling callbacks for the application.
*/
public function register(): void
{
$this->reportable(function (Throwable $e) {
//
});
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
public function login()
{
return view('Auth/index');
}
public function loginAksi(Request $request)
{
$credentials = $request->validate([
'nama' => ['required'],
'password' => ['required'],
]);
if (Auth::attempt($credentials))
{
if (Auth::user()->role_id == 1) {
return redirect('/dashboard')->with('login','Login Berhasil');
}
if (Auth::user()->role_id == 2) {
return redirect('/dashboard')->with('login','Login Berhasil');
}
if (Auth::user()->role_id == 3) {
return redirect('/dashboard')->with('login','Login Berhasil');
}
if (Auth::user()->role_id == 4) {
return redirect('/dashboard')->with('login','Login Berhasil');
}
if (Auth::user()->role_id == 5) {
return redirect('/dashboard')->with('login','Login Berhasil');
}
if (Auth::user()->role_id == 6) {
return redirect('/dashboard')->with('login','Login Berhasil');
}
if (Auth::user()->role_id == 7) {
return redirect('/dashboard')->with('login','Login Berhasil');
}
}
}
public function logout(Request $request)
{
Auth::guard('web')->logout();
$request->session()->invalidate();
return redirect('/');
}
}
<?php
namespace App\Http\Controllers;
use App\Models\Bidang;
use Illuminate\Http\Request;
class BidangController extends Controller
{
public function index()
{
$bidang = Bidang::get();
return view('Bidang.index', ['bidang' => $bidang]);
}
public function tambah()
{
return view('Bidang.create');
}
public function simpan(Request $request)
{
Bidang::create(['nama_bidang' => $request->nama_bidang]);
return redirect()->route('bidang');
}
public function edit($id)
{
$bidang = Bidang::where('id', $id)->first();
return view('Bidang.create', ['bidang' => $bidang]);
}
public function update($id, Request $request)
{
Bidang::find($id)->update(['nama_bidang' => $request->nama_bidang]);
return redirect()->route('bidang');
}
public function hapus($id)
{
Bidang::find($id)->delete();
return redirect()->route('bidang');
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{
use AuthorizesRequests, ValidatesRequests;
}
<?php
namespace App\Http\Controllers;
use App\Models\Peminjaman;
use App\Models\User;
use App\Models\Undangan;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class DashboardController extends Controller
{
public function index()
{
$usersCount = User::count(); // Hitung jumlah data user
$peminjamanCount = Peminjaman::count(); // Hitung jumlah data peminjaman
$undanganCount = Undangan::count(); // Hitung jumlah data undangan
$peminjaman = Peminjaman::all();
return view('dashboard', compact('usersCount', 'undanganCount', 'peminjamanCount', 'peminjaman'));
}
}
<?php
namespace App\Http\Controllers;
use App\Models\Fasilitas;
use Illuminate\Http\Request;
class FasilitasController extends Controller
{
public function index()
{
$fasilitas = Fasilitas::get();
return view('Fasilitas.index', ['fasilitas' => $fasilitas]);
}
public function tambah()
{
return view('Fasilitas.create');
}
public function simpan(Request $request)
{
Fasilitas::create(['nama' => $request->nama]);
return redirect()->route('fasilitas');
}
public function edit($id)
{
$fasilitas = Fasilitas::where('id', $id)->first();
return view('Fasilitas.create', ['fasilitas' => $fasilitas]);
}
public function update($id, Request $request)
{
Fasilitas::find($id)->update(['nama' => $request->nama]);
return redirect()->route('fasilitas');
}
public function hapus($id)
{
Fasilitas::find($id)->delete();
return redirect()->route('fasilitas');
}
}
<?php
namespace App\Http\Controllers;
use App\Models\Peminjaman;
use Illuminate\Http\Request;
class LandingPageController extends Controller
{
public function index()
{
$data_peminjaman = Peminjaman::all();
$events = [];
foreach ($data_peminjaman as $peminjaman) {
$events[] = [
'title' => $peminjaman->agenda,
'start' => $peminjaman->tanggal_pinjam,
];
}
return view('landing_page', ['events' => $events]);
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
function index()
{
return view("auth/index");
}
function login(Request $request)
{
$request->validate([
'email'=>'required',
'password'=>'required'
], [
'email.required'=>'Email wajib diisi',
'password.required'=>'Password wajib diisi',
]);
$infologin = [
'email'=>$request->email,
'password'=>$request->password
];
if(Auth::attempt($infologin)){
//kalau otentikasi sukses
return 'sukses';
} else {
return redirect('login')->withErrors('Username dan password yang dimasukkan tidak valid');
}
}
}
<?php
namespace App\Http\Controllers;
use App\Models\Peminjaman;
use App\Models\Ruangrapat;
// use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class PeminjamanController extends Controller
{
public function index(Request $request)
{
$peminjaman = Peminjaman::query();
// Filter by month and year if provided
if ($request->has('bulan') && $request->has('tahun')) {
$bulan = $request->bulan;
$tahun = $request->tahun;
$peminjaman->whereMonth('tanggal_pinjam', $bulan)->whereYear('tanggal_pinjam', $tahun);
}
// Additional condition to filter data based on user role
if (auth()->user()->role_id === 7) {
$peminjaman->where('user_id', auth()->user()->id);
}
$peminjaman = $peminjaman->get();
return view('peminjaman.index', compact('peminjaman'));
}
public function tambah()
{
$ruangrapat = Ruangrapat::where('status', '1')->get();
return view('peminjaman.create', ['ruangrapat' => $ruangrapat]);
}
public function checkAvailability(Request $request)
{
$ruangrapat_id = $request->input('ruangrapat_id');
$hari = $request->input('hari');
$jam_pinjam = $request->input('jam_pinjam');
$jam_selesai = $request->input('jam_selesai');
$existingPeminjaman = Peminjaman::where('ruangrapat_id', $ruangrapat_id)
->where('hari', $hari) // Menambahkan pencarian berdasarkan hari
->where(function ($query) use ($jam_pinjam, $jam_selesai) {
$query->whereBetween('jam_pinjam', [$jam_pinjam, $jam_selesai])
->orWhereBetween('jam_selesai', [$jam_pinjam, $jam_selesai])
->orWhere(function ($query) use ($jam_pinjam, $jam_selesai) {
$query->where('jam_pinjam', '<=', $jam_pinjam)
->where('jam_selesai', '>=', $jam_selesai);
});
})
->exists();
$available = !$existingPeminjaman;
return response()->json(['available' => $available]);
}
public function simpan(Request $request)
{
// Handle jam_pinjam and jam_selesai
$jam_pinjam_hours = $request->input('jam_pinjam_hours');
$jam_pinjam_minutes = $request->input('jam_pinjam_minutes');
$jam_pinjam = $jam_pinjam_hours . ':' . $jam_pinjam_minutes;
$jam_selesai_hours = $request->input('jam_selesai_hours');
$jam_selesai_minutes = $request->input('jam_selesai_minutes');
$jam_selesai = $jam_selesai_hours . ':' . $jam_selesai_minutes;
$ruangrapatId = $request->input('ruangrapat');
$available = true;
// Mengambil waktu_mulai dan waktu_selesai dari ruangan yang dipilih
$ruangrapat = Ruangrapat::findOrFail($request->ruangrapat);
$waktuMulaiRuangan = $ruangrapat->waktu_mulai;
$waktuSelesaiRuangan = $ruangrapat->waktu_selesai;
// Periksa apakah jam_pinjam pinjamanan dan jam_selesai jatuh dalam rentang waktu yang diperbolehkan ruangan
if ($jam_pinjam < $waktuMulaiRuangan || $jam_selesai > $waktuSelesaiRuangan) {
return redirect()->back()->with('error', 'Peminjaman hanya dapat dilakukan sesuai waktu ruangan yang dipilih.');
}
// Mengecek peminjaman yang bertabrakan pada tanggal, waktu pinjam, dan waktu selesai yang sama
$peminjamanBertabrakan = Peminjaman::where('ruangrapat_id', $ruangrapatId)
->whereDate('tanggal_pinjam', $request->tanggal_pinjam) // Menambahkan pencarian berdasarkan tanggal
->where(function ($query) use ($jam_pinjam, $jam_selesai) {
$query->where('jam_pinjam', '<', $jam_selesai)
->where('jam_selesai', '>', $jam_pinjam);
})
->exists();
// // Check if the selected date is a Sunday
// $selectedDate = Carbon::parse($request->tanggal_pinjam);
// if ($selectedDate->isSunday()) {
// return redirect()->back()->with('error', 'Peminjaman tidak dapat dilakukan pada hari Minggu.');
// }
// Jika terdapat peminjaman yang bertabrakan, atur $available menjadi false
if ($peminjamanBertabrakan) {
$available = false;
}
// Jika peminjaman tersedia, simpan peminjaman
if ($available) {
$peminjaman = new Peminjaman();
$peminjaman->hari = $request->input('hari');
$peminjaman->tanggal_pinjam = $request->tanggal_pinjam;
$peminjaman->agenda = $request->agenda;
$peminjaman->jam_pinjam = $jam_pinjam;
$peminjaman->jam_selesai = $jam_selesai;
$peminjaman->ruangrapat_id = $request->ruangrapat;
$peminjaman->user_id = auth()->user()->id;
$peminjaman->save();
return redirect()->route('peminjaman')->with('success', 'Peminjaman berhasil ditambahkan.');
// return redirect()->route('peminjaman')->with('success', 'Peminjaman berhasil ditambahkan.');
// } else {
// return redirect()->back()->with('error', 'Ruang dan waktu yang dipilih tidak tersedia. Silakan pilih ruang atau waktu lain.');
}
}
}
\ No newline at end of file
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class ProfileController extends Controller
{
public function show()
{
$user = Auth::user();
return view('profile.show', compact('user'));
}
public function edit()
{
$user = Auth::user();
return view('profile.edit', compact('user'));
}
public function update(Request $request)
{
$user = Auth::user();
$user->nip = $request->input('nip');
$user->bidang_id = $request->input('bidang');
$user->role_id = $request->input('role');
$user->nama = $request->input('nama');
$user->no_telp = $request->input('no_telp');
$user->email = $request->input('email');
// Jika ingin mengubah password
if ($request->filled('password')) {
$user->password = Hash::make($request->input('password'));
}
// Lakukan validasi lainnya jika diperlukan
$user->save();
return redirect()->route('profile.show')->with('success', 'Profil berhasil diperbarui.');
}
}
<?php
namespace App\Http\Controllers;
use App\Models\Role;
use Illuminate\Http\Request;
class RoleController extends Controller
{
public function index()
{
$role = Role::get();
return view('Role.index', ['role' => $role]);
}
public function tambah()
{
return view('Role.create');
}
public function simpan(Request $request)
{
Role::create(['nama_role' => $request->nama_role]);
return redirect()->route('role');
}
public function edit($id)
{
$role = Role::where('id', $id)->first();
return view('Role.create', ['role' => $role]);
}
public function update($id, Request $request)
{
Role::find($id)->update(['nama_role' => $request->nama_role]);
return redirect()->route('role');
}
public function hapus($id)
{
Role::find($id)->delete();
return redirect()->route('role');
}
}
<?php
namespace App\Http\Controllers;
use App\Models\Ruangrapat;
use App\Models\Fasilitas;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class RuangrapatController extends Controller
{
public function index()
{
$listFasilitas = Fasilitas::all();
$ruangrapat = Ruangrapat::get();
return view('Ruangrapat.index', compact('listFasilitas', 'ruangrapat'));
}
public function tambah()
{
$listFasilitas = Fasilitas::all();
return view('Ruangrapat.create', compact('listFasilitas'));
}
public function simpan(Request $request)
{
$data = $request->validate([
'fasilitas' => 'required|array',
'fasilitas.*' => 'exists:fasilitas,id',
'jumlah_fasilitas' => 'required|array',
'jumlah_fasilitas.*' => 'integer|min:0',
]);
// Handle waktu_mulai and waktu_selesai
$waktu_mulai_hours = $request->input('waktu_mulai_hours');
$waktu_mulai_minutes = $request->input('waktu_mulai_minutes');
$waktu_mulai = $waktu_mulai_hours . ':' . $waktu_mulai_minutes;
$waktu_selesai_hours = $request->input('waktu_selesai_hours');
$waktu_selesai_minutes = $request->input('waktu_selesai_minutes');
$waktu_selesai = $waktu_selesai_hours . ':' . $waktu_selesai_minutes;
// Handle gambar upload
$gambar = $request->file('gambar');
$namaFile = time() . '.' . $gambar->getClientOriginalExtension();
$gambar->move(public_path('img'), $namaFile);
// Create new Ruangrapat instance and save data to the database
$ruangrapat = new Ruangrapat;
$ruangrapat->nama_ruangrapat = $request->nama_ruangrapat;
$ruangrapat->kapasitas = $request->kapasitas;
$ruangrapat->waktu_mulai = $waktu_mulai;
$ruangrapat->waktu_selesai = $waktu_selesai;
$ruangrapat->lokasi = $request->lokasi;
$ruangrapat->gambar = $namaFile;
$ruangrapat->status = 1;
$ruangrapat->save();
// Handle the fasilitas data
$selectedFasilitas = $request->input('fasilitas');
$jumlahFasilitas = $request->input('jumlah_fasilitas');
$fasilitasData = [];
foreach ($selectedFasilitas as $fasilitasId) {
$quantity = isset($jumlahFasilitas[$fasilitasId]) ? intval($jumlahFasilitas[$fasilitasId]) : 0;
if ($quantity > 0) {
$fasilitasData[$fasilitasId] = ['jumlah' => $quantity];
}
}
$ruangrapat->fasilitas()->attach($fasilitasData);
// Optionally handle the uploaded image
if ($request->hasFile('gambar')) {
// Process and save the image
}
return redirect()->route('ruangrapat')->with('success', 'Data Berhasil di Tambahkan.');
}
public function edit($id)
{
$ruangrapat = Ruangrapat::where('id', $id)->first();
$listFasilitas = Fasilitas::all();
return view('Ruangrapat.create', compact('listFasilitas', 'ruangrapat'));
}
public function update($id, Request $request)
{
$data = $request->validate([
'fasilitas' => 'required|array',
'fasilitas.*' => 'exists:fasilitas,id',
'jumlah_fasilitas' => 'required|array',
'jumlah_fasilitas.*' => 'integer|min:0',
]);
// Handle waktu_mulai and waktu_selesai
$waktu_mulai_hours = $request->input('waktu_mulai_hours');
$waktu_mulai_minutes = $request->input('waktu_mulai_minutes');
$waktu_mulai = $waktu_mulai_hours . ':' . $waktu_mulai_minutes;
$waktu_selesai_hours = $request->input('waktu_selesai_hours');
$waktu_selesai_minutes = $request->input('waktu_selesai_minutes');
$waktu_selesai = $waktu_selesai_hours . ':' . $waktu_selesai_minutes;
$ruangrapat = Ruangrapat::find($id);
$ruangrapat->nama_ruangrapat = $request->nama_ruangrapat;
$ruangrapat->kapasitas = $request->kapasitas;
$ruangrapat->waktu_mulai = $waktu_mulai;
$ruangrapat->waktu_selesai = $waktu_selesai;
$ruangrapat->lokasi = $request->lokasi;
$ruangrapat->status = 1;
$ruangrapat->save();
// Handle the fasilitas data
$listFasilitas = $request->input('fasilitas');
$jumlahFasilitas = $request->input('jumlah_fasilitas');
// Sync the selected fasilitas with their quantities for this Ruangrapat
$fasilitasData = [];
foreach ($listFasilitas as $fasilitasId) {
$quantity = isset($jumlahFasilitas[$fasilitasId]) ? intval($jumlahFasilitas[$fasilitasId]) : 0;
if ($quantity > 0) {
$fasilitasData[$fasilitasId] = ['jumlah' => $quantity];
}
}
$ruangrapat->fasilitas()->sync($fasilitasData);
// Optionally handle the uploaded image
if ($request->hasFile('gambar')) {
// Process and save the image
}
return redirect('/ruangrapat')->with('success', 'Data Berhasil di Update.');
}
public function updateStatus(Request $request)
{
$roomId = $request->input('roomId');
$room = RuangRapat::find($roomId);
if (!$room) {
return response()->json(['success' => false, 'error' => 'Room not found.']);
}
$room->status = $room->status == 1 ? 0 : 1;
$room->save();
return response()->json(['success' => true]);
}
public function hapus($id)
{
Ruangrapat::find($id)->delete();
return redirect()->route('ruangrapat')->with('success', 'Data Berhasil di Hapus.');
}
}
<?php
namespace App\Http\Controllers;
use App\Models\Undangan;
use App\Models\Peminjaman;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use Illuminate\Routing\Controller;
class UndanganController extends Controller
{
public function index()
{
$undangan = Undangan::get();
// if (Auth::user()->role == '2') {
// $undangan = Undangan::where('last_status', '!=', 'Belum Disetujui')->get();
// }
return view('undangan.index', ['undangan' => $undangan]);
}
public function tambah()
{
$peminjaman = Peminjaman::get();
return view('undangan.create', ['peminjaman' => $peminjaman]);
}
public function simpan(Request $request)
{
// $request->validate([
// 'agenda' => 'required',
// 'file_undangan' => 'required|file|mimes:pdf|max:2048',
// ]);
$fileUndangan = $request->file('file_undangan');
$namaFile = $fileUndangan->getClientOriginalName();
$fileUndangan->move(public_path('undangan1'), $namaFile);
$undangan = new Undangan();
$undangan->hari = $request->hari;
$undangan->tanggal_pinjam = $request->tanggal;
$undangan->agenda = $request->agenda;
$undangan->nama_ruangrapat = $request->ruang;
$undangan->file_undangan = $namaFile;
$undangan->last_status = 'Menunggu Persetujuan Sub Koordinator Bidang';
$undangan->user_id = auth()->user()->id; // Menyimpan ID pengguna yang melakukan undangan
$undangan->save();
return redirect()->route('undangan');
}
public function edit($id)
{
$undangan = Undangan::findOrFail($id);
return view('undangan.edit', ['undangan' => $undangan]);
}
public function update(Request $request, $id)
{
$undangan = Undangan::findOrFail($id);
$undangan->nama_undangan = $request->nama_undangan;
$undangan->last_status = $request->last_status;
$undangan->save();
return redirect()->route('undangan');
}
public function hapus($id)
{
$undangan = Undangan::findOrFail($id);
$undangan->delete();
return redirect()->route('undangan');
}
public function show($namaFile)
{
$filePath = public_path('undangan1/' . $namaFile);
// Periksa apakah file undangan ada
if (file_exists($filePath)) {
// Mengirimkan file undangan sebagai respons
return response()->file($filePath);
} else {
// Jika file tidak ditemukan, tampilkan pesan atau lakukan tindakan lainnya
return abort(404);
}
}
public function downloadTemplate()
{
$path = public_path('storage/app/templates/undangan.docx');
return response()->download($path);
}
public function setujuiUndangan($undanganId)
{
// Cek apakah user memiliki hak akses untuk melakukan aksi ini, misalnya berdasarkan role atau permission
$undangan = Undangan::findOrFail($undanganId);
// Lakukan logika untuk proses setujui undangan sesuai dengan alur yang dijelaskan
if ($undangan->last_status === 'Menunggu Persetujuan Sub Koordinator Bidang') {
// Update status undangan sesuai alur yang diinginkan
if ($undangan->role_id === 6) {
// Setujui dari Sub Koordinator Bidang
$undangan->last_status = 'Menunggu Persetujuan Kepala Bidang';
} elseif ($undangan->role_id === 5) {
// Setujui dari Kepala Bidang
$undangan->last_status = 'Menunggu Persetujuan Kasubag Administrasi dan Umum';
} elseif ($undangan->role_id === 4) {
// Setujui dari Kasubag Administrasi dan Umum
$undangan->last_status = 'Menunggu Persetujuan Sekretaris Dinas';
} elseif ($undangan->role_id === 3) {
// Setujui dari Sekretaris Dinas
$undangan->last_status = 'Menunggu Persetujuan Kepala Dinas';
} elseif ($undangan->role_id === 2) {
// Setujui dari Kepala Dinas
$undangan->last_status = 'Menunggu Persetujuan Admin';
}
$undangan->save();
// Tambahkan logika lain yang diperlukan, seperti mengirim notifikasi ke pihak terkait
return redirect()->back()->with('success', 'Undangan berhasil disetujui.');
}
// Jika kondisi tidak memenuhi, misalnya undangan sudah dalam status yang tidak bisa disetujui, kembalikan response sesuai kebutuhan
// ...
}
public function tolakUndangan($undanganId)
{
// Cek apakah user memiliki hak akses untuk melakukan aksi ini, misalnya berdasarkan role atau permission
$undangan = Undangan::findOrFail($undanganId);
// Lakukan logika untuk proses tolak undangan
if ($undangan->last_status === 'Menunggu Persetujuan') {
// Simpan ID user yang melakukan Persetujuan
$persetujuanBy = Auth::user()->id;
// Update status persetujuan sesuai dengan role yang melakukan persetujuan
if ($persetujuanBy === 4) {
$undangan->persetujuan_sub_koordinator = 'Ditolak';
} elseif ($persetujuanBy === 5) {
$undangan->persetujuan_kepala_bidang = 'Ditolak';
} elseif ($persetujuanBy === 6) {
$undangan->persetujuan_kasubag = 'Ditolak';
}
// Simpan perubahan persetujuan
$undangan->save();
// Cek apakah semua pihak yang terlibat dalam persetujuan telah menolak undangan
if ($undangan->persetujuan_sub_koordinator === 'Ditolak' && $undangan->persetujuan_kepala_bidang === 'Ditolak' && $undangan->persetujuan_kasubag === 'Ditolak') {
// Jika ya, ubah status undangan menjadi 'Ditolak'
$undangan->last_status = 'Ditolak';
$undangan->save();
}
// Tambahkan logika lain yang diperlukan, seperti mengirim notifikasi atau pemrosesan ulang pengajuan undangan yang sama
return redirect()->back()->with('success', 'Undangan berhasil ditolak.');
}
// Jika kondisi tidak memenuhi, misalnya undangan sudah dalam status yang tidak bisa ditolak, kembalikan response sesuai kebutuhan
// ...
}
public function setujuSubKoordinatorBidang($undanganId)
{
$undangan = Undangan::findOrFail($undanganId);
if ($undangan->last_status === 'Menunggu Persetujuan Sub Koordinator Bidang') {
// Logika persetujuan Sub Koordinator Bidang
// ...
$undangan->last_status = 'Menunggu Persetujuan Kepala Bidang';
$undangan->save();
}
return redirect()->route('undangan');
}
public function setujuKepalaBidang($undanganId)
{
$undangan = Undangan::findOrFail($undanganId);
if ($undangan->last_status === 'Menunggu Persetujuan Kepala Bidang') {
// Logika persetujuan Kepala Bidang
// ...
$undangan->last_status = 'Menunggu Persetujuan Kasubag Administrasi dan Umum';
$undangan->save();
}
return redirect()->route('undangan');
}
public function setujuKasubagAdministrasiDanUmum($undanganId)
{
$undangan = Undangan::findOrFail($undanganId);
if ($undangan->last_status === 'Menunggu Persetujuan Kasubag Administrasi dan Umum') {
// Logika persetujuan Kasubag Administrasi dan Umum
// ...
$undangan->last_status = 'Menunggu Persetujuan Sekretaris Dinas';
$undangan->save();
}
return redirect()->route('undangan');
}
public function setujuSekretarisDinas($undanganId)
{
$undangan = Undangan::findOrFail($undanganId);
if ($undangan->last_status === 'Menunggu Persetujuan Sekretaris Dinas') {
// Logika persetujuan Sekretaris Dinas
// ...
$undangan->last_status = 'Menunggu Persetujuan Kepala Dinas';
$undangan->save();
}
return redirect()->route('undangan');
}
public function setujuKepalaDinas($undanganId)
{
$undangan = Undangan::findOrFail($undanganId);
if ($undangan->last_status === 'Menunggu Persetujuan Kepala Dinas') {
// Logika persetujuan Kepala Dinas
// ...
$undangan->last_status = 'Disetujui';
$undangan->save();
}
return redirect()->route('undangan');
}
public function printFileUndangan($undanganId)
{
$undangan = Undangan::findOrFail($undanganId);
if ($undangan->last_status === 'Disetujui') {
// Logika untuk mencetak file undangan
// ...
// Redirect atau tampilkan file undangan
// ...
}
}
public function editFile($id)
{
$undangan = Undangan::findOrFail($id);
// Pastikan hanya admin yang dapat mengakses halaman ini
if (auth()->user()->role->nama_role !== 'Admin') {
abort(403, 'Unauthorized action.');
}
return view('undangan.edit', compact('undangan'));
}
public function updateFile(Request $request, $id)
{
$undangan = Undangan::findOrFail($id);
// Pastikan hanya admin yang dapat mengakses aksi ini
if (auth()->user()->role->nama_role !== 'Admin') {
abort(403, 'Unauthorized action.');
}
if ($request->hasFile('file_undangan')) {
$file = time() . "_" . $request->file_undangan->getClientOriginalName();
$request->file_undangan->move(public_path('undangan1/'), $file);
$fileUndangan = public_path('undangan1/' . $undangan->file_undangan);
// Update the undangan's file_undangan column with the new file name
$undangan->update([
'file_undangan' => $file,
]);
return redirect()->route('undangan')->with('success', 'File Undangan berhasil diperbarui');
}
return redirect()->back()->with('error', 'Ukuran File Terlalu Besar');
}
}
<?php
namespace App\Http\Controllers;
use App\Mail\Email;
use App\Models\Role;
use App\Models\User;
use App\Models\Bidang;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Mail;
class UserController extends Controller
{
public function index()
{
$user = User::get();
return view('User.index', ['user' => $user]);
}
public function tambah()
{
$bidang = Bidang::get();
$role = Role::get();
return view('User.create', ['bidang' => $bidang, 'role' => $role]);
}
public function simpan(Request $request)
{
// $hashedPassword = Hash::make($request->password);
$tambahrtp = $request->all();
$user = new user;
$user->nip = $request->nip;
$user->bidang_id = $request->bidang;
$user->role_id = $request->role;
$user->nama = $request->nama;
$user->no_telp = $request->no_telp;
$user->email = $request->email;
$user->password = $request->password;
$user->save();
return redirect()->route('user')->with('success', 'Data Berhasil di Tambahkan.');
}
public function edit($id)
{
$bidang = Bidang::get();
$role = Role::get();
$user = User::findOrFail($id);
return view('User.create', ['user' => $user, 'bidang' => $bidang, 'role' => $role]);
}
public function update($id, Request $request)
{
$user = User::findOrFail($id);
$user->nip = $request->nip;
$user->bidang_id = $request->bidang;
$user->role_id = $request->role;
$user->nama = $request->nama;
$user->no_telp = $request->no_telp;
$user->email = $request->email;
if ($request->password) {
$user->password = bcrypt($request->password);
}
$user->save();
return redirect('/user')->with('success', 'Data Berhasil di Update.');
}
public function hapus($id)
{
User::find($id)->delete();
return redirect()->route('user');
}
public function email($id)
{
// Logika untuk membuat pengguna baru
// ...
// Mengirim email selamat datang
$users = user::find($id); // Ganti dengan data pengguna yang sesuai
Mail::to($users->email)->send(new Email($users));
return redirect()->back()->with('status', 'Notifikasi Laporan Berhasil Dikirim');
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment