<?php
use App\Http\Controllers\AbsensiController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\DepartemenController;
use App\Http\Controllers\GajiController;
use App\Http\Controllers\IzinController;
use App\Http\Controllers\JabatanController;
use App\Http\Controllers\JadwalKerjaController;
use App\Http\Controllers\KalenderJadwalController;
use App\Http\Controllers\KaryawanController;
use App\Http\Controllers\KunjunganController;
use App\Http\Controllers\LaporanController;
use App\Http\Controllers\LoginController;
use App\Http\Controllers\LokasiAbsenController;
use App\Http\Controllers\LokasiKerjaController;
use App\Http\Controllers\PayrollController;
use App\Http\Controllers\PermintaanAbsensiController;
use App\Http\Controllers\PermintaanIzinController;
use App\Http\Controllers\PerusahaanController;
use App\Http\Controllers\ReimbursementCategoryController;
use App\Http\Controllers\ReimbursementController;
use App\Http\Controllers\RoleController;
use App\Http\Controllers\SettingController;
use App\Http\Controllers\ShiftKerjaController;
use App\Http\Controllers\TimesheetController;
use App\Http\Controllers\UnitController;
use App\Http\Controllers\UserController;
use App\Models\JadwalKerja;
use App\Models\JadwalKerjaDetail;
use App\Models\Karyawan;
use App\Models\RiwayatAbsensi;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Artisan;
use App\Exports\UsersExport;
use App\Helpers\Helper;
use App\Http\Controllers\AjaxController;
use App\Http\Controllers\CronJobController;
use App\Http\Controllers\ForgotPasswordController;
use App\Http\Controllers\LaporanFotoAbsenController;
use App\Http\Controllers\UserLogController;
use App\Jobs\NotifikasiWa;
use App\Models\Departemen;
use App\Models\KalenderJadwal;
use Illuminate\Support\Facades\Mail;
use Maatwebsite\Excel\Facades\Excel;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/privacy-policy', function () {
return view('privacy-policy');
});
Route::get('/test-job', function () {
dispatch(new NotifikasiWa("081545419859", "Test Wa AKG Job"));
return "okco";
});
Route::get('/test-wa', function () {
return Helper::sendWa("081545419859", "Test Wa AKG");
// return "okco";
});
Route::get('/check-departemen/{departemen_id}', function ($departemen_id) {
return User::whereHas('departemen',function($q)use($departemen_id){
$q->where('departemen_id',$departemen_id);
})->select('nama','no_hp')->get();
});
Route::get('/test-export', function () {
return Excel::download(new UsersExport, 'users.xlsx');
});
Route::get('/clear-cache',function(){
$result = Artisan::call('optimize:clear');
return 'Cache is cleared : '.$result;
});
Route::get('/update-kalender-by-detail', function () {
$kalenders = KalenderJadwal::where('status','na')->get();
foreach ($kalenders as $kalender) {
$kalender->status = $kalender->kalenderJadwalDetails->first()->status ?? "na";
$kalender->save();
}
return count($kalenders);
});
Route::get('/cek-jadwal-karyawan/{id}', function ($id) {
$tanggal = request()->test_tanggal ?? date('Y-m-d');
$waktu = request()->test_waktu ?? date('H:i:00');
try {
$karyawan = Karyawan::find((int)$id);
$jadwalDetail = Helper::checkJadwalTanggal((int)$id,$tanggal,$waktu);
if ($jadwalDetail == null) {
return "tidak ada jadwal";
} else {
if ($jadwalDetail->status_kerja == "day-off") {
$kalender = $karyawan->kalender_jadwal_hari_ini;
if ($kalender == null || $kalender->status != "work") {
dd($kalender);
}
}
}
return $jadwalDetail;
} catch (\Throwable $th) {
dd($th);
}
return "Okoc";
});
Route::get('/cek-kalender',function(){
$karyawans = Karyawan::with('departemen','perusahaan','jadwal_kerja.jadwal_kerja_detail','jadwal_kerja','izins','kalender_jadwal')->find(request()->karyawan_id);
return $karyawans;
});
Route::get('/test-code', function () {
$hariIni = new DateTime(date("Y-m-d"));
//$awalKerja = new DateTime("2022-06-23"); //libur
$awalKerja = new DateTime("2022-06-25"); //kerja
//$awalKerja = new DateTime("2022-06-10"); //kerja
//9 hari = 8 hari kerja 1 hari libur (bisa dinamis)
$hariKerja = [
'kerja',
'kerja',
'kerja',//hari ke 3
'kerja',
'kerja',
'kerja',
'kerja',
'kerja',
'libur' //hari ke 9
];
$hariKe = 0;
while ($awalKerja < $hariIni) {
if ($hariKe < count($hariKerja) - 1) {
$hariKe++;
} else {
$hariKe = 0;
}
$awalKerja->modify('+1 day');
}
echo "Hari Ke : " . ($hariKe + 1) . " - " . $hariKerja[$hariKe];
});
// Route::get('/test-code', function () {
// $karyawan = Karyawan::find(2);
// dd($karyawan->jadwal_kerja_hari_ini);
// function isBetween($from, $till, $input)
// {
// $f = DateTime::createFromFormat('H:i:s', $from);
// $t = DateTime::createFromFormat('H:i:s', $till);
// $i = DateTime::createFromFormat('H:i:s', $input);
// if ($f > $t) $t->modify('+1 day');
// return ($f <= $i && $i <= $t) || ($f <= $i->modify('+1 day') && $i <= $t);
// }
// function cekJadwal($jadwal, $input, $day)
// {
// foreach ($jadwal as $key => $value) {
// if (isBetween($value->jam_masuk, $value->jam_pulang, $input) && $value->hari == "Day $day") {
// return $key;
// }
// }
// return 0;
// }
// $awal = new DateTime($karyawan->tanggal_mulai_kerja);
// $hariIni = new DateTime(date("Y-m-d"));
// $input = date("H:i:00");
// $jadwals = JadwalKerjaDetail::has('jadwal_kerja')
// ->selectRaw("*,TIMEDIFF(jam_masuk, '" . $input . "') as _diff")
// ->whereIn('jadwal_kerja_id', $karyawan->jadwal_kerja->pluck('id')->toArray())
// // ->where('status_kerja', 'work-day')
// ->orderBy('_diff', 'ASC')
// ->get();
// $day = 1;
// foreach ($jadwals as $key => $detail) {
// while ($awal < $hariIni) {
// if ($day < $detail->jadwal_kerja->jumlah_hari) {
// $day++;
// } else {
// $day = 1;
// }
// $awal->modify('+1 day');
// }
// $jam_masuk = strtotime($detail->jam_masuk);
// $jam_pulang = strtotime($detail->jam_pulang);
// $_input = strtotime($input);
// if($detail->hari == "Day $day"){
// if(isBetween($detail->jam_masuk, $detail->jam_pulang, $input)){
// return $detail;
// } else if ($_input < $jam_masuk || ($_input >= $jam_masuk && $_input <= $jam_pulang)) {
// return $detail;
// }
// }
// }
// // foreach ($karyawan->jadwal_kerja as $jadwal) {
// // $index = 0;
// // while ($awal < $hariIni) {
// // if ($index < $jadwal->jumlah_hari) {
// // $index++;
// // } else {
// // $index = 0;
// // }
// // $awal->modify('+1 day');
// // }
// // $hasil = $jadwal->jadwal_kerja_detail()->where("hari", "Day " . ($index + 1))->first();
// // dd($hasil);
// // }
// });
Route::group(['middleware' => 'guest'], function () {
Route::get('/login', [LoginController::class, 'index'])->name('login');
Route::post('/login', [LoginController::class, 'login'])->name('login.submit');
});
Route::group(['middleware' => 'customAuth'], function () {
Route::get('/php-info', function(){
return phpinfo();
});
Route::get('/disk-info', [DashboardController::class, 'diskInfo'])->name('disk-info');
Route::get('/chart', [DashboardController::class, 'chart'])->name('chart');
Route::get('/', [DashboardController::class, 'index'])->name('dashboard');
Route::get('/profile', [DashboardController::class, 'profile'])->name('profile');
Route::post('/profile', [DashboardController::class, 'profileUpdate'])->name('profile.update');
Route::post('/logout', [DashboardController::class, 'logout'])->name('dashboard.logout');
Route::get('foto-profile', [DashboardController::class, 'fotoProfil'])->name('dashboard.foto-profile');
Route::get('foto-user/{id}', [DashboardController::class, 'fotoUser'])->name('dashboard.foto-user');
Route::post('kalender-jadwal/update-jadwal', [KalenderJadwalController::class, 'updateJadwal'])->name('kalender-jadwal.update-jadwal');
Route::resources([
'role' => RoleController::class,
'perusahaan' => PerusahaanController::class,
'unit' => UnitController::class,
'gaji' => GajiController::class,
'jabatan' => JabatanController::class,
'departemen' => DepartemenController::class,
'user' => UserController::class,
'lokasi-absen' => LokasiAbsenController::class,
'lokasi-kerja' => LokasiKerjaController::class,
'jadwal-kerja' => JadwalKerjaController::class,
'shift-kerja' => ShiftKerjaController::class,
'karyawan' => KaryawanController::class,
'izin' => IzinController::class,
'permintaan-izin' => PermintaanIzinController::class,
'permintaan-absensi' => PermintaanAbsensiController::class,
'kunjungan' => KunjunganController::class,
'timesheet' => TimesheetController::class,
'reimbursement-category' => ReimbursementCategoryController::class,
'reimbursement' => ReimbursementController::class,
'kalender-jadwal'=>KalenderJadwalController::class,
'setting'=>SettingController::class
]);
Route::get('user-log', [UserLogController::class, 'index'])->name('user-log.index');
Route::get('karyawan/pilih-jabatan/{departemen_id}', [KaryawanController::class, 'pilihJabatan'])->name('karyawan.pilih-jabatan');
Route::get('izin/{id}/lampiran', [IzinController::class, 'lampiran'])->name('izin.lampiran');
Route::get('karyawan/{id}/foto', [KaryawanController::class, 'foto'])->name('karyawan.foto');
Route::post('karyawan/{id}/reset-device', [KaryawanController::class, 'resetDevice'])->name('karyawan.reset-device');
Route::resource('absensi', AbsensiController::class)->except('show');
Route::get('absensi/show/{karyawan_id}/{absen_id}', [AbsensiController::class, 'show'])->name('absensi.show');
Route::delete('absensi/delete-detail/{id}', [AbsensiController::class, 'deleteDetail'])->name('absensi.delete-detail');
Route::get('reimbursement/{id}/foto-bukti', [ReimbursementController::class, 'fotoBukti'])->name('reimbursement.foto-bukti');
Route::get('ajax/absensi/{karyawan_id}/{tanggal}', [AbsensiController::class, 'getDetailAbsen'])->name('absensi.ajax.get-detail-absen');
Route::post('/absensi/update-absen', [AbsensiController::class, 'updateAbsen'])->name('absensi.update-absen');
Route::post('/absensi/{karyawan_id}/{jadwal_id}/check-in', [AbsensiController::class, 'checkIn'])->name('absensi.check-in');
Route::post('/absensi/{karyawan_id}/{jadwal_id}/check-out', [AbsensiController::class, 'checkOut'])->name('absensi.check-out');
Route::get('absensi/{id}/foto-absen', [AbsensiController::class, 'fotoAbsen'])->name('absensi.foto-absen');
Route::post('/permintaan-absensi/multi-update-status', [PermintaanAbsensiController::class, 'multiUpdateStatus'])->name('permintaan-absensi.multi-update-status');
Route::post('/permintaan-absensi/{id}/accept', [PermintaanAbsensiController::class, 'accept'])->name('permintaan-absensi.accept');
Route::post('/permintaan-absensi/{id}/reject', [PermintaanAbsensiController::class, 'reject'])->name('permintaan-absensi.reject');
Route::post('/permintaan-absensi/{id}/status', [PermintaanAbsensiController::class, 'status'])->name('permintaan-absensi.status');
Route::get('permintaan-absensi/{id}/foto-absen', [PermintaanAbsensiController::class, 'fotoAbsen'])->name('permintaan-absensi.foto-absen');
Route::post('permintaan-izin/{id}/status', [PermintaanIzinController::class, 'status'])->name('permintaan-izin.status');
Route::get('permintaan-izin/{id}/lampiran', [PermintaanIzinController::class, 'lampiran'])->name('permintaan-izin.lampiran');
Route::group(['prefix' => 'laporan', 'as' => 'laporan.'], function () {
Route::get('absensi', [LaporanController::class, 'absensi'])->name('absensi');
Route::get('payroll', [LaporanController::class, 'payroll'])->name('payroll');
Route::get('foto-absen', [LaporanFotoAbsenController::class, 'index'])->name('foto-absen.index');
});
Route::group(['prefix' => 'ajax', 'as' => 'ajax.'], function () {
Route::get('pilih-karyawan', [AjaxController::class, 'pilihKaryawan'])->name('pilih-karyawan');
Route::post('pilih-karyawan', [AjaxController::class, 'pilihKaryawan'])->name('pilih-karyawan');
});
Route::get('payroll', [PayrollController::class, 'index'])->name('payroll.index');
});
Route::get('reset-password/{token}', [ForgotPasswordController::class, 'showResetPasswordForm'])->name('reset.password.get');
Route::post('reset-password', [ForgotPasswordController::class, 'submitResetPasswordForm'])->name('reset.password.post');
Route::get('test-mail', function(){
return Mail::raw('Hello World 2!', function($msg) {$msg->to('[email protected]')->subject('Test Email 2'); });
});
Route::get('test-push-notification', function(){
return Helper::sendPushNotification(request()->to,"Test Push Notification","Test Push Notification Body");
});
Route::get('/cron-job/check-check-out',[CronJobController::class, 'checkCheckOut']);
Route::get('/cron-job/notif-permintaan-absensi', [CronJobController::class, 'notifPermintaanAbsensi']);
Route::get('/migrate',function(){
$result = Artisan::call('migrate');
return $result;
});
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]