Anons79 Mini Shell

Directory : /home/aplikasiposinfo/.trash/routes/
Upload File :
Current File : /home/aplikasiposinfo/.trash/routes/web.php

<?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]