Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/circleightstore.fixmate.id/routes/
Upload File :
Current File : /home/aplikasiposinfo/public_html/circleightstore.fixmate.id/routes/web.php

<?php

use App\Helpers\Helper;
use App\Http\Controllers\ArtikelController;
use App\Http\Controllers\CheckReferralPelangganController;
use App\Http\Controllers\NumberLoginController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\DiskonController;
use App\Http\Controllers\FrontController;
use App\Http\Controllers\GaleriController;
use App\Http\Controllers\GaransiController;
use App\Http\Controllers\GetDataController;
use App\Http\Controllers\IntegrasiWhatsappController;
use App\Http\Controllers\ItemController;
use App\Http\Controllers\KategoriItemController;
use App\Http\Controllers\JenisItemController;
use App\Http\Controllers\KirimSupplierController;
use App\Http\Controllers\KonsultasiController;
use App\Http\Controllers\LandingContentManagerController;
use App\Http\Controllers\LoginController;
use App\Http\Controllers\LogoutController;
use App\Http\Controllers\PelangganAktifController;
use App\Http\Controllers\PenjualanController;
use App\Http\Controllers\PembelianController;
use App\Http\Controllers\RewardPromoController;
use App\Http\Controllers\ServiceController;
use App\Http\Controllers\SupplierController;
use App\Http\Controllers\TeknisiController;
use App\Http\Controllers\PelangganController;
use App\Http\Controllers\PenggunaController;
use App\Http\Controllers\TokoController;
use App\Http\Controllers\TransaksiGudangController;
use App\Http\Controllers\LevelController;
use App\Http\Controllers\ProfilController;
use App\Http\Controllers\SaleController;
use App\Http\Controllers\ReturPenjualanController;
use App\Http\Controllers\ReturPembelianController;
use App\Http\Controllers\RoleController;
use App\Http\Controllers\PembayaranPiutangController;
use App\Http\Controllers\PembayaranHutangController;
use App\Http\Controllers\PembayaranServiceController;
use App\Http\Controllers\PesanController;
use App\Http\Controllers\MerkController;
use App\Http\Controllers\LaporanController;
use App\Http\Controllers\LaporanKasirController;
use App\Http\Controllers\LogUserController;
use App\Http\Controllers\PesanActionController;
use App\Http\Controllers\PesanActionGlobalController;
use App\Http\Controllers\PesanCustomController;
use App\Http\Controllers\PesanDefaultController;
use App\Http\Controllers\PesanKonsultasiController;
use App\Http\Controllers\PesanPenjualanController;
use App\Http\Controllers\ReferralPelangganController;
use App\Http\Controllers\RefundController;
use App\Http\Controllers\RefundPenjualanController;
use App\Http\Controllers\ReturDanGaransiController;
use App\Http\Controllers\ReviewController;
use App\Http\Controllers\ReviewPelangganController;
use App\Http\Controllers\SosmedController;
use App\Http\Controllers\StatusPerbaikanController;
use App\Http\Controllers\StorageController;
use App\Http\Controllers\TableServiceSettingController;
use App\Http\Controllers\TrackingController;
use App\Http\Controllers\TransaksiBarangRusakController;
use App\Models\DetailKirimSupplier;
use App\Models\DetailReturPembelian;
use App\Models\Item;
use App\Models\Konsultasi;
use App\Models\LaporanKasir;
use App\Models\Menu;
use App\Models\Pelanggan;
use App\Models\Pembayaran;
use App\Models\PembayaranService;
use App\Models\Pembelian;
use App\Models\Pengguna;
use App\Models\Penjualan;
use App\Models\PesanCustom;
use App\Models\Profil;
use App\Models\ReturPembelian;
use App\Models\ReturPenjualan;
use App\Models\Role;
use App\Models\Sale;
use App\Models\Service;
use App\Models\TableServiceSetting;
use App\Models\Teknisi;
use App\Models\Toko;
use App\Models\TransaksiGudang;
use GuzzleHttp\Middleware;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/

Route::get('/invalid', function () {
    return view('invalid');
})->name('invalid');

if (env("APP_ENV") != "production") {
    Route::get('/test-hash', function () {
        return Hash::make(request()->password);
    });

    Route::get('/test-wa', function () {
        return Helper::sendWa(request()->no_wa, "test notif wa anggurcell");
    });

    Route::get('/migrate', function () {
        return Artisan::call('migrate');
    });

    Route::get('/seed', function () {
        return Artisan::call('db:seed');
    });

    Route::get('/optimize', function () {
        return Artisan::call('optimize:clear');
    });

    Route::get('/cek-laporan', function () {
        $results = [];

        $begin = new DateTime('-1 month');
        $end = new DateTime();

        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $laporanKasir = LaporanKasir::whereBetween("tanggal", [$begin->format('Y-m-d'), $end->format('Y-m-d')])
            ->orderBy('created_at', 'DESC')->get();
        $uang_dp = 0;
        foreach ($laporanKasir as $laporan) {
            if ($laporan->services == null || $laporan->services == "") {
                continue;
            }
            $services = Service::with('pelanggan', 'pembayaran_service', 'teknisi', 'pengguna', 'detail')->whereIn('id', explode(",", $laporan->services))->get();
            $pembayarans = [];
            $new_omset_cash = $laporan->omset_cash;
            $new_uang_muka_cash = $laporan->uang_muka_cash;
            $new_uang_muka_transfer = $laporan->uang_muka_transfer;

            foreach ($services as $service) {
                foreach ($service->pembayaran_service as $pembayaran) {
                    if ($pembayaran->metode_bayar == "cash") {
                        $new_uang_muka_cash +=  $service->uang_bayar;
                    } else if ($pembayaran->metode_bayar == "transfer") {
                        $new_uang_muka_transfer +=  $service->uang_bayar;
                    }
                    $new_omset_cash -= $service->uang_bayar;

                    $pembayarans[] = [
                        'no_service' => $service->no_service,
                        'uang_bayar' => $service->uang_bayar,
                        'metode_bayar' => $pembayaran->metode_bayar,

                    ];
                }
            }

            $uang_dp += $new_uang_muka_cash + $new_uang_muka_transfer;

            $results[] = [
                "no_laporan" => $laporan->no_laporan_kasir,
                "tgl_laporan" => $laporan->tanggal,
                "omset_cash" => $laporan->omset_cash,
                "uang_muka_cash" => $laporan->uang_muka_cash,
                "uang_muka_transfer" => $laporan->uang_muka_transfer,
                "new_uang_muka_cash" => $new_uang_muka_cash,
                "new_uang_muka_transfer" => $new_uang_muka_transfer,
                "new_omset_cash" => $new_omset_cash,
                "pembayarans" => $pembayarans,

            ];
            // $laporan->update([
            //     "uang_muka_cash" => $new_uang_muka_cash,
            //     "uang_muka_transfer" => $new_uang_muka_transfer,
            //     "omset_cash" => $new_omset_cash,
            // ]);
        }

        return [
            "results" => $results,
            "uang_dp" => $uang_dp
        ];
    });

    Route::get('/init-toko', function () {
        $profil = Profil::first();


        DB::beginTransaction();
        try {
            if ($profil) {
                $toko = Toko::firstOrCreate([
                    'nama_toko' => $profil->nama_toko,
                    'alamat_toko' => $profil->alamat,
                    'no_telp_toko' => $profil->kontak,
                ]);

                if ($toko) {
                    $roles = Role::all();
                    foreach ($roles as $role) {
                        $role->tokos()->sync($toko->id);
                    }
                    $pembelians = Pembelian::whereDoesntHave('tokos')->get();
                    foreach ($pembelians as $pembelian) {
                        $pembelian->tokos()->sync($toko->id);
                    }
                    $penjualans = Penjualan::whereDoesntHave('tokos')->get();
                    foreach ($penjualans as $penjualan) {
                        $penjualan->tokos()->sync($toko->id);
                    }
                    $services = Service::whereDoesntHave('tokos')->get();
                    foreach ($services as $service) {
                        $service->tokos()->sync($toko->id);
                    }

                    $returPenjualans = ReturPenjualan::whereDoesntHave('tokos')->get();
                    foreach ($returPenjualans as $returPenjualan) {
                        $returPenjualan->tokos()->sync($toko->id);
                    }

                    $returPembelians = ReturPembelian::whereDoesntHave('tokos')->get();
                    foreach ($returPembelians as $returPembelian) {
                        $returPembelian->tokos()->sync($toko->id);
                    }

                    $transaksiGudangs = TransaksiGudang::whereDoesntHave('tokos')->get();
                    foreach ($transaksiGudangs as $transaksiGudang) {
                        $transaksiGudang->tokos()->sync($toko->id);
                    }

                    $laporanKasirs = LaporanKasir::whereDoesntHave('tokos')->get();
                    foreach ($laporanKasirs as $laporanKasir) {
                        $laporanKasir->tokos()->sync($toko->id);
                    }

                    $items = Item::whereDoesntHave('stok_item_tokos')->get();
                    foreach ($items as $item) {
                        $item->stok_item_tokos()->firstOrCreate(['toko_id' => $toko->id,], [
                            'stok' => $item->stok // Inisialisasi stok awal
                        ]);
                    }
                }
            }
            DB::commit();
            return response()->json(['message' => 'Toko berhasil diinisialisasi'], 200);
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollBack();
            return response()->json(['message' => 'Gagal menginisialisasi toko: ' . $th->getMessage()], 500);
        }
    });

    Route::get('/update-menu', function () {
        $menu = Menu::firstOrCreate([
            'nama_menu' => request()->nama_menu,
            'aksi_menu' => request()->aksi_menu
        ]);
        return $menu;
    });

    Route::get('/init-teknisi', function () {
        $roleTeknisi = Role::where('nama_role', 'Teknisi')->first();

        if ($roleTeknisi) {
            $teknisis = Teknisi::all();
            foreach ($teknisis as $teknisi) {
                $cekPengguna = Pengguna::where('nama_pengguna', $teknisi->nama_teknisi)
                    ->first();
                if (!$cekPengguna) {
                    $pengguna = Pengguna::create([
                        'nama_pengguna' => $teknisi->nama_teknisi,
                        'email' => "teknisi" . ($teknisi->id + date("m")) . "@email.com",
                        'password' => Hash::make('12345678'),
                        'no_telp' => $teknisi->telp_teknisi,
                        'role_id' => $roleTeknisi->id,
                    ]);
                    if ($pengguna) {
                        Service::where('teknisi_id', $teknisi->id)
                            ->update(['teknisi_id' => $pengguna->id]);
                        if ($pengguna->no_telp == "" || $pengguna->no_telp == null) {
                            $pengguna->update(['no_telp' => $teknisi->telp_teknisi]);
                        }
                    }
                } else {
                    if ($cekPengguna->no_telp == "" || $cekPengguna->no_telp == null) {
                        $cekPengguna->update(['no_telp' => $teknisi->telp_teknisi]);
                    }
                    Service::where('teknisi_id', $teknisi->id)
                        ->update(['teknisi_id' => $cekPengguna->id]);
                }
            }
        }

        return response()->json(['message' => 'Teknisi berhasil diinisialisasi'], 200);
    });

    Route::get('/init-sales', function () {
        $roleSales = Role::where('nama_role', 'Sales')->first();
        if ($roleSales) {
            $sales = Sale::all();
            foreach ($sales as $sale) {
                $cekPengguna = Pengguna::where('role_id', $roleSales->id)
                    ->where('nama_pengguna', $sale->nama_sales)
                    ->first();
                if (!$cekPengguna) {
                    $pengguna = Pengguna::create([
                        'nama_pengguna' => $sale->nama_sales,
                        'email' => "sales" . ($sale->id + date("m")) . "@email.com",
                        'password' => Hash::make('12345678'),
                        'no_telp' => $sale->kontak,
                        'role_id' => $roleSales->id,
                    ]);
                    if ($pengguna) {
                        Service::where('sale_id', $sale->id)
                            ->update(['sale_id' => $pengguna->id]);
                        Penjualan::where('sale_id', $sale->id)
                            ->update(['sale_id' => $pengguna->id]);
                    }
                } else {
                    $cekPengguna->update([
                        'no_telp' => $sale->kontak,
                    ]);
                    Service::where('sale_id', $sale->id)
                        ->update(['sale_id' => $cekPengguna->id]);
                    Penjualan::where('sale_id', $sale->id)
                        ->update(['sale_id' => $cekPengguna->id]);
                }
            }
        }


        return response()->json(['message' => 'Salse berhasil diinisialisasi'], 200);
    });

    Route::get('pindah-stok-ke-toko',function(){
        DB::beginTransaction();
        try {
            $items = Item::with('stok_item_tokos')->get();
            foreach ($items as $key => $item) {
                $item->update([
                    // 'stok_gudang'=>0,
                    'stok'=>$item->stok_item_tokos->sum('stok')+$item->stok_gudang
                ]);
            }

            DB::commit();
            return response()->json(['message' => 'Stok dipindah ke toko : '.count($items)], 200);
        } catch (\Throwable $th) {
            DB::rollBack();
            return response()->json(['message' => 'Stok gagal dipindah : '.$th->getMessage()], 500);
        }
    });

    Route::get('update-no-retur',function(){
        DB::beginTransaction();
        try {
            $returPembelians = ReturPembelian::whereNotNull('created_at')->where('no_retur','')->get();
            foreach ($returPembelians as $returPembelian) {
                $returPembelian->update([
                    'no_retur'=>'RB-'.$returPembelian->created_at->format("YmdHis")
                ]);
            }

            $returPenjualans = ReturPenjualan::whereNotNull('created_at')->where('no_retur','')->get();
            foreach ($returPenjualans as $returPenjualan) {
                $returPenjualan->update([
                    'no_retur'=>'RP-'.$returPenjualan->created_at->format("YmdHis")
                ]);
            }
            DB::commit();
            return response()->json(['message' => 'No Retur Di Update : '.count($returPembelians)], 200);
        } catch (\Throwable $th) {
            DB::rollBack();
            return response()->json(['message' => 'No Retur Gagal Di Update : '.$th->getMessage()], 500);
        }
    });

    Route::get('update-status-lanjutan-penjualan',function(){
        DB::beginTransaction();
        try {
            $penjualans = Penjualan::where('status_pembayaran','retur')->orWhere('status_pembayaran','refund')->get();
            foreach ($penjualans as $penjualan) {
                $penjualan->update([
                    'status_pembayaran' => 'lunas',
                    'status_lanjutan'=>$penjualan->status_pembayaran
                ]);
            }
            DB::commit();
            return response()->json(['message' => 'Status Lanjutan Di Update : '.count($penjualans)], 200);
        } catch (\Throwable $th) {
            DB::rollBack();
            return response()->json(['message' => 'Status Lanjutan Gagal Di Update : '.$th->getMessage()], 500);
        }
    });

    Route::get('fix-detail',function(){
        DB::beginTransaction();
        DetailReturPembelian::whereNotNull('status_item')->update(['status_item'=>null]);
        try {
            $detailKirimSuppliers = DetailKirimSupplier::with('kirim_supplier')->get();
            foreach ($detailKirimSuppliers as $detailKirimSupplier) {
                if($detailKirimSupplier->detail_retur_pembelian_id != null){
                    $cek = DetailReturPembelian::where('item_id',$detailKirimSupplier->item_id)->whereHas('retur_pembelian',function($w)use($detailKirimSupplier){
                        $w->where('supplier_id',$detailKirimSupplier->kirim_supplier->supplier_id);
                    })->first();
                    if($cek){
                        $cek->update([
                            'status_item'=>$detailKirimSupplier->kirim_supplier->jenis_kompensasi,
                        ]);
                        $detailKirimSupplier->update([
                            'detail_retur_pembelian_id'=>$cek->id
                        ]);
                    }
                }
            }
            DB::commit();
            return response()->json(['message' => 'Mengupdate Detail : '.count($detailKirimSuppliers)], 200);
        } catch (\Throwable $th) {
            DB::rollBack();
            return response()->json(['message' => 'Gagal Mengupdate Detail : '.$th->getMessage()], 500);
        }
    });

    Route::get('sync-stok-toko',function(){
        DB::beginTransaction();
        try {
            $items = Item::with('stok_item_tokos')->get();
            foreach ($items as $key => $item) {
                $item->stok_item_tokos()->update([
                    'stok'=>$item->stok
                ]);
            }

            DB::commit();
            return response()->json(['message' => 'Sync Stok Toko : '.count($items)], 200);
        } catch (\Throwable $th) {
            DB::rollBack();
            return response()->json(['message' => 'Stok Toko gagal di sync : '.$th->getMessage()], 500);
        }
    });
}



if (env("APP_ENV") == "local") {
    Route::get('/init-toko', function () {
        $profil = Profil::first();


        DB::beginTransaction();
        try {
            if ($profil) {
                $toko = Toko::firstOrCreate([
                    'nama_toko' => $profil->nama_toko,
                    'alamat_toko' => $profil->alamat,
                    'no_telp_toko' => $profil->kontak,
                ]);

                if ($toko) {
                    $roles = Role::all();
                    foreach ($roles as $role) {
                        $role->tokos()->sync($toko->id);
                    }
                    $pembelians = Pembelian::whereDoesntHave('tokos')->get();
                    foreach ($pembelians as $pembelian) {
                        $pembelian->tokos()->sync($toko->id);
                    }
                    $penjualans = Penjualan::whereDoesntHave('tokos')->get();
                    foreach ($penjualans as $penjualan) {
                        $penjualan->tokos()->sync($toko->id);
                    }
                    $services = Service::whereDoesntHave('tokos')->get();
                    foreach ($services as $service) {
                        $service->tokos()->sync($toko->id);
                    }

                    $returPenjualans = ReturPenjualan::whereDoesntHave('tokos')->get();
                    foreach ($returPenjualans as $returPenjualan) {
                        $returPenjualan->tokos()->sync($toko->id);
                    }

                    $returPembelians = ReturPembelian::whereDoesntHave('tokos')->get();
                    foreach ($returPembelians as $returPembelian) {
                        $returPembelian->tokos()->sync($toko->id);
                    }

                    $transaksiGudangs = TransaksiGudang::whereDoesntHave('tokos')->get();
                    foreach ($transaksiGudangs as $transaksiGudang) {
                        $transaksiGudang->tokos()->sync($toko->id);
                    }

                    $laporanKasirs = LaporanKasir::whereDoesntHave('tokos')->get();
                    foreach ($laporanKasirs as $laporanKasir) {
                        $laporanKasir->tokos()->sync($toko->id);
                    }

                    $items = Item::whereDoesntHave('stok_item_tokos')->get();
                    foreach ($items as $item) {
                        $item->stok_item_tokos()->firstOrCreate(['toko_id' => $toko->id,], [
                            'stok' => $item->stok // Inisialisasi stok awal
                        ]);
                    }
                }
            }
            DB::commit();
            return response()->json(['message' => 'Toko berhasil diinisialisasi'], 200);
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollBack();
            return response()->json(['message' => 'Gagal menginisialisasi toko: ' . $th->getMessage()], 500);
        }
    });
    Route::get('delete-pelanggan', function () {
        DB::beginTransaction();
        try {
            $pelanggans = Pelanggan::whereDate('created_at', '<', date("Y-01-01"))->get();
            foreach ($pelanggans as $pelanggan) {
                $pelanggan->delete();
            }

            $services = Service::whereDate('created_at', '<', date("Y-01-01"))->get();
            foreach ($services as $service) {
                $service->pelanggan()->delete();
                $service->delete();
            }
            DB::commit();
            return response()->json(['message' => 'Pelanggan berhasil dihapus'], 200);
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollBack();
            return response()->json(['message' => 'Pelanggan gagal dihapus : ' . $th->getMessage()], 500);
        }
    });

    Route::get('delete-transaksi', function () {
        $tanggal = request()->tanggal ?? date("Y-m-25");
        DB::beginTransaction();
        try {

            $services = Service::whereDate('tanggal_selesai', '<', $tanggal)->orWhere(function ($w) use ($tanggal) {
                $w->whereNull('tanggal_selesai')->whereDate('tanggal', '<', $tanggal);
            })->get();
            foreach ($services as $service) {
                $service->tokos()->detach();
                $service->delete();
            }

            $penjualans = Penjualan::whereDate('jam_selesai', '<', $tanggal)->orWhere(function ($w) use ($tanggal) {
                $w->whereNull('jam_selesai')->whereDate('tanggal_penjualan', '<', $tanggal);
            })->get();
            foreach ($penjualans as $penjualan) {
                $penjualan->tokos()->detach();
                $penjualan->delete();
            }

            $pembelians = Pembelian::whereDate('tanggal_pembelian', '<', $tanggal)->get();
            foreach ($pembelians as $pembelian) {
                $pembelian->tokos()->detach();
                $pembelian->delete();
            }

            $laporanKasirs = LaporanKasir::whereDate('tanggal', '<', $tanggal)->get();
            foreach ($laporanKasirs as $laporanKasir) {
                $laporanKasir->tokos()->detach();
                $laporanKasir->delete();
            }

            $konsultasis = Konsultasi::whereDate('created_at', '<', $tanggal)->whereDate('updated_at', '<', $tanggal)->get();
            foreach ($konsultasis as $konsultasi) {
                $konsultasi->delete();
            }
            DB::commit();
            return response()->json(['message' => 'Transaksi berhasil dihapus'], 200);
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollBack();
            return response()->json(['message' => 'Transaksi gagal dihapus : ' . $th->getMessage()], 500);
        }
    });
    
}

//reset password
Route::middleware(['guest'])->group(function () {
    Route::get('/forgot-password', [\App\Http\Controllers\ForgotPasswordController::class, 'index'])->name('forgot.password');
    Route::post('/forgot-password', [\App\Http\Controllers\ForgotPasswordController::class, 'forgotPassword'])->name('forgot.password.action');
    Route::get('/reset-password/{token}', [\App\Http\Controllers\ForgotPasswordController::class, 'forgetPasswordForm'])->name('password.reset');
    Route::post('/reset-password', [\App\Http\Controllers\ForgotPasswordController::class, 'forgetPasswordReset'])->name('reset.password.action');
});


// Route::get('/servis_online', [ServiceController::class, 'guest'])->name('service.guest');

Route::middleware(['error.handler'])->group(function () {
    // Semua route yang berada di dalam grup ini akan menggunakan ErrorHandlerMiddleware
    Route::group(['middleware' => ['guest']], function () {
        Route::get('/login/page', [LoginController::class, 'loginView'])->name('login');
        Route::get('/login/number', [NumberLoginController::class, 'loginView'])->name('numberlogin');
        Route::get('/verify/number', [NumberLoginController::class, 'verifyView'])->name('numberVerify');
        Route::post('/login/number/auth', [NumberLoginController::class, 'auth'])->name('number.auth');
        Route::post('/verify/number/auth', [NumberLoginController::class, 'verifyAuth'])->name('verify.auth');
        Route::post('/login', [LoginController::class, 'loginAuth'])->name('login.auth');
    });


    Route::resource('konsultasi', KonsultasiController::class)->only(['store']);

    // front
    Route::get('/', [FrontController::class, 'home'])->name('home');
    Route::get('/gallery', [FrontController::class, 'galeri'])->name('gallery');

    Route::get('status-perbaikan', [StatusPerbaikanController::class, 'index'])->name('status-perbaikan.index');
    Route::post('status-perbaikan', [StatusPerbaikanController::class, 'cek'])->name('status-perbaikan.cek');

    Route::get('check-referral', [CheckReferralPelangganController::class, 'index'])->name('check-referral.index');
    Route::post('check-referral', [CheckReferralPelangganController::class, 'cek'])->name('check-referral.cek');

    Route::get('review', [ReviewController::class, 'index'])->name('review.index');
    Route::post('review', [ReviewController::class, 'store'])->name('review.store');



    Route::group(['middleware' => ['auth:penggunas', 'auth']], function () {
        Route::get('service/rincian/nota/{id}', [ServiceController::class, 'notaPage'])->name('service.notaPage');
        Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
        // Route::get('/', [ServiceController::class, 'dashboard'])->name('service.dashboard');
        Route::get('/form-service', [ServiceController::class, 'guest'])->name('service.guest');
        Route::post('/guest/store', [ServiceController::class, 'guest_store'])->name('service.guest.store');
        Route::post('/cancel/service', [ServiceController::class, 'cancelService'])->name('service.cancel');
        Route::get('/guest/done', [ServiceController::class, 'guest_done'])->name('service.guest_done');

        Route::post('/logout', [LogoutController::class, 'index'])->name('logout');
        Route::resource('item', ItemController::class);
        Route::resource('log', LogUserController::class);

        Route::get('/retur-dan-garansi', [ReturDanGaransiController::class, 'index'])->name('retur-dan-garansi.index');
        Route::resource('/garansi', GaransiController::class);
        Route::get('kirim-supplier/{id}/nota', [KirimSupplierController::class, 'nota'])->name('kirim-supplier.nota');
        Route::get('kirim-supplier/{id}/kompensasi', [KirimSupplierController::class, 'kompensasi'])->name('kirim-supplier.kompensasi');
        Route::get('kirim-supplier/{id}/status', [KirimSupplierController::class, 'status'])->name('kirim-supplier.status');
        Route::resource('/kirim-supplier', KirimSupplierController::class);


        // konsultasi
        Route::resource('konsultasi', KonsultasiController::class)->only(['destroy']);
        Route::get('/form-konsultasi', [KonsultasiController::class, 'guest'])->name('konsultasi.guest');
        Route::post('/form-konsultasi', [KonsultasiController::class, 'guestStore'])->name('konsultasi.guestStore');
        Route::get('/konsultasi/{id}/get', [KonsultasiController::class, 'getKonsultasiById'])->name('konsultasi.getById');
        Route::post('/konsultasi/{id}/update-booking', [KonsultasiController::class, 'updateTanggalJamBooking'])->name('konsultasi.updateBooking');

        Route::get('pelanggan-aktif', [PelangganAktifController::class, 'index'])->name('pelanggan-aktif.index');

        Route::get('pelanggan-aktif/{id}/{action_id}/action', [PelangganAktifController::class, 'kirimAction'])->name('pelanggan-aktif.action');

        Route::resource('reward-promo', RewardPromoController::class);

        Route::get('/konsultasi/pesan-default', [KonsultasiController::class, 'editPesanDefault'])->name('konsultasi.pesan-default');
        Route::post('/konsultasi/pesan-default', [KonsultasiController::class, 'editPesanDefaultAction'])->name('konsultasi.pesan-default.action');

        Route::get('/konsultasi/pesan-default-schedule', [KonsultasiController::class, 'pesanDefaultSchedule'])->name('konsultasi.pesan-default-schedule.index');
        Route::get('/konsultasi/pesan-default-schedule/create', [KonsultasiController::class, 'pesanDefaultScheduleCreate'])->name('konsultasi.pesan-default-schedule.create');
        Route::post('/konsultasi/pesan-default-schedule', [KonsultasiController::class, 'pesanDefaultScheduleStore'])->name('konsultasi.pesan-default-schedule.store');
        Route::get('/konsultasi/pesan-default-schedule/{id}/edit', [KonsultasiController::class, 'pesanDefaultScheduleEdit'])->name('konsultasi.pesan-default-schedule.edit');
        Route::put('/konsultasi/pesan-default-schedule/{id}', [KonsultasiController::class, 'pesanDefaultScheduleUpdate'])->name('konsultasi.pesan-default-schedule.update');
        Route::delete('/konsultasi/pesan-default-schedule/{id}', [KonsultasiController::class, 'pesanDefaultScheduleDelete'])->name('konsultasi.pesan-default-schedule.delete');

        Route::get('/konsultasi/index', [KonsultasiController::class, 'index'])->name('konsultasi.index');
        Route::get('/konsultasi/status/{id}', [KonsultasiController::class, 'status_penyelesaian'])->name('konsultasi.status');

        Route::get('review-pelanggan', [ReviewPelangganController::class, 'index'])->name('review-pelanggan.index');


        Route::get('profil', [ProfilController::class, 'index'])->name('profil.index');
        Route::put('profil/update', [ProfilController::class, 'update'])->name('profil.update');
        Route::get('get-item', [ItemController::class, 'getItem'])->name('get-item');
        Route::get('get-item-sparepart', [ItemController::class, 'getItemSparepart'])->name('get-item-sparepart');
        Route::get('get-jenis-kategori', [JenisItemController::class, "getJenisByKategoriId"])->name('get-jenis-kategori');
        Route::resource('kategori-item', KategoriItemController::class);
        Route::resource('jenis_item', JenisItemController::class);
        Route::resource('diskon', DiskonController::class);
        Route::resource('laporan_kasir', LaporanKasirController::class);

         Route::post('service/multi-delete', [ServiceController::class, 'multiDelete'])->name('service.multiDelete');

        Route::get('service/proses/{id}', [ServiceController::class, 'proses'])->name('service.proses');
        Route::get('service/duplicate/{id}', [ServiceController::class, 'duplicate'])->name('service.duplicate');
        Route::get('pesan/penjualan/{id}', [PesanPenjualanController::class, 'pesanWellcome'])->name('pesanWellcomePenjualan');
        Route::get('pesan/penjualan/{id}/{idPesan}', [ServiceController::class, 'pesanCustom'])->name('pesanCustom');
        Route::get('service/nota/{id}', [ServiceController::class, 'nota'])->name('service.nota');
        Route::get('service/cetak', [ServiceController::class, 'cetak'])->name('service.cetak');

        Route::get('service/list', [ServiceController::class, 'list'])->name('service.list');
        Route::get('service/list_terpakai', [ServiceController::class, 'list_terpakai'])->name('service.list_terpakai');
        Route::get('service/kas', [ServiceController::class, 'kas'])->name('service.kas');
        Route::get('service/garansi/{id}', [ServiceController::class, 'create_garansi'])->name('service.garansi.create');
        Route::post('service/garansi/{id}', [ServiceController::class, 'store_garansi'])->name('service.garansi.store');
        Route::resource('service', ServiceController::class);

        Route::get('pesan/tampilkan/{id}', [PesanCustomController::class, 'tampilkan'])->name('tampilkanPesan');
        Route::get('konsultasi/pesan/tampilkan/{id}', [PesanKonsultasiController::class, 'tampilkan'])->name('tampilkanPesanKonsultasi');

        // Landing Page
        Route::resource('landing-content-manager', LandingContentManagerController::class);
        Route::resource('galeri', GaleriController::class);
        Route::resource('artikel', ArtikelController::class);
        Route::resource('sosialmedia', SosmedController::class);
        // Landing Page
        //Ajax 
        Route::get('/itemterjual', [GetDataController::class, 'itemterjual'])->name('terjual');
        Route::get('/getservicedata', [GetDataController::class, 'getservicedata'])->name('getservicedata');

        Route::resource('tracking', TrackingController::class);

        Route::post('penjualan/multi-delete', [PenjualanController::class, 'multiDelete'])->name('penjualan.multiDelete');


        Route::get('/form-penjualan', [PenjualanController::class, 'guest'])->name('penjualan.guest');
        Route::post('/penjualan/guest/store', [PenjualanController::class, 'guestStore'])->name('penjualan.guest.store');
        Route::get('penjualan/retur/{id}', [PenjualanController::class, 'retur_penjualan'])->name('penjualan.retur');
        Route::get('penjualan/nota/{id}', [PenjualanController::class, 'nota'])->name('penjualan.nota');
        Route::get('penjualan/kirim/nota/{id}', [PenjualanController::class, 'notaSend'])->name('penjualan.send.nota');
        Route::get('penjualan/garansi/create/{id}', [PenjualanController::class, 'garansi'])->name('garansi_penjualan.create');
        Route::get('penjualan/cetak', [PenjualanController::class, 'cetak'])->name('penjualan.cetak');
        Route::post('/penjualan/garansi/store/{id}', [PenjualanController::class, 'garansi_store'])->name('garansi_penjualan.store');

        Route::resource('penjualan', PenjualanController::class);
        Route::resource('transaksi_barang_rusak', TransaksiBarangRusakController::class);
        Route::post('pembelian/multi-delete', [PembelianController::class, 'multiDelete'])->name('pembelian.multiDelete');
        Route::resource('pembelian', PembelianController::class);
        Route::resource('merk', MerkController::class);
        Route::resource('teknisi', TeknisiController::class);
        Route::resource('toko', TokoController::class);
        Route::resource('pelanggan/referral', ReferralPelangganController::class, ['names' => 'pelanggan.referral']);
        Route::resource('pelanggan', PelangganController::class);

        Route::resource('supplier', SupplierController::class);
        Route::resource('pengguna', PenggunaController::class);
        Route::resource('transaksi_gudang', TransaksiGudangController::class);
        Route::resource('level', LevelController::class);
        Route::resource('sale', SaleController::class);
        Route::resource('retur_penjualan', ReturPenjualanController::class);
        Route::resource('retur_pembelian', ReturPembelianController::class);
        Route::get('retur_pembelian/{id}/status-retur', [ReturPembelianController::class, 'statusRetur'])->name('retur_pembelian.status');
        Route::resource('role', RoleController::class);
        Route::resource('pembayaran_piutang', PembayaranPiutangController::class);
        Route::resource('pembayaran_hutang', PembayaranHutangController::class);
        Route::resource('pembayaran_service', PembayaranServiceController::class);
        Route::resource('refund', RefundController::class);
        Route::resource('refund_penjualan', RefundPenjualanController::class);
        Route::resource('pesan', PesanController::class);
        Route::resource('pesan_penjualan', PesanPenjualanController::class);
        Route::resource('tableServiceSetting', TableServiceSettingController::class);
        Route::resource('pesan_custom', PesanCustomController::class);
        Route::resource('pesan_konsultasi', PesanKonsultasiController::class);
        Route::resource('pesan_action', PesanActionController::class);
        Route::resource('pesan_action_global', PesanActionGlobalController::class);
        Route::get('laporan', [LaporanController::class, 'index'])->name('laporan');

        Route::post('pembayaran/hutang/lunas', [PembayaranHutangController::class, 'lunas'])->name('lunas');

        Route::get('konsultasi/pesan/followup/{id}/{idPesan}', [KonsultasiController::class, 'pesanKonsultasi'])->name('pesanKonsultasi');


        Route::prefix('laporan')->group(function () {
            Route::get('/penjualan', [LaporanController::class, 'penjualan'])->name('laporan.penjualan');
            Route::get('/pembelian', [LaporanController::class, 'pembelian'])->name('laporan.pembelian');
            Route::get('/service', [LaporanController::class, 'service'])->name('laporan.service');
            Route::get('/service-garansi', [LaporanController::class, 'serviceGaransi'])->name('laporan.serviceGaransi');
            Route::get('/service-refund', [LaporanController::class, 'serviceRefund'])->name('laporan.serviceRefund');
            Route::get('/returPenjualan', [LaporanController::class, 'returPenjualan'])->name('laporan.returPenjualan');
            Route::get('/returPembelian', [LaporanController::class, 'returPembelian'])->name('laporan.returPembelian');
            Route::get('/gudang', [LaporanController::class, 'gudang'])->name('laporan.gudang');
            Route::get('/piutang', [LaporanController::class, 'piutang'])->name('laporan.piutang');
            Route::get('/hutang', [LaporanController::class, 'hutang'])->name('laporan.hutang');
            Route::get('/items', [LaporanController::class, 'items'])->name('laporan.items');
            Route::get('/pelanggan', [LaporanController::class, 'pelanggan'])->name('laporan.pelanggan');
            Route::get('/uangMuka', [LaporanController::class, 'uangMuka'])->name('laporan.uangMuka');
            Route::get('/kirim-supplier', [LaporanController::class, 'kirimSupplier'])->name('laporan.kirim-supplier');

            // Cetak
            Route::get('/service/cetak', [LaporanController::class, 'servicePrint'])->name('laporan.service.print');
            Route::get('/service-garansi/cetak', [LaporanController::class, 'serviceGaransiPrint'])->name('laporan.serviceGaransi.print');
            Route::get('/service-refund/cetak', [LaporanController::class, 'serviceRefundPrint'])->name('laporan.serviceRefund.print');
            Route::get('/penjualan/cetak', [LaporanController::class, 'penjualanPrint'])->name('laporan.penjualan.print');
            Route::get('/pembelian/cetak', [LaporanController::class, 'pembelianPrint'])->name('laporan.pembelian.print');
            Route::get('/gudang/cetak', [LaporanController::class, 'gudangPrint'])->name('laporan.gudang.print');
            Route::get('/hutang/cetak', [LaporanController::class, 'hutangPrint'])->name('laporan.hutang.print');
            Route::get('/returPenjualan/cetak', [LaporanController::class, 'returPenjualanPrint'])->name('laporan.returPenjualan.print');
            Route::get('/returPembelian/cetak', [LaporanController::class, 'returPembelianPrint'])->name('laporan.returPembelian.print');
            Route::get('/piutang/cetak', [LaporanController::class, 'piutangPrint'])->name('laporan.piutang.print');
            Route::get('/items/cetak', [LaporanController::class, 'itemsPrint'])->name('laporan.items.print');
            Route::get('/pelanggan/excel', [PelangganController::class, 'exportExcel'])->name('laporan.daftarPelanggan.print');
            Route::get('/pelanggan/cetak', [LaporanController::class, 'pelangganPrint'])->name('laporan.pelanggan.print');
            Route::get('/laporanKasir/cetak', [LaporanKasirController::class, 'cetak'])->name('laporan_kasir.print');
            Route::get('/laporanUangMuka/cetak', [LaporanController::class, 'uangMukaPrint'])->name('laporan.UangMuka.print');
            Route::get('/kirim-supplier/cetak', [LaporanController::class, 'kirimSupplierPrint'])->name('laporan.kirim-supplier.print');
        });

        if (env("INTEGRASI_WHATSAPP")) {
            Route::resource('integrasi-whatsapp', IntegrasiWhatsappController::class);
        }

        Route::group(['as' => 'storage.', 'prefix' => 'storage'], function () {
            Route::get('gambar', [StorageController::class, 'gambar'])->name('gambar');
        });

        Route::put('pesan-default/{id}', [PesanDefaultController::class, 'update'])->name('pesan-default.update');
    });
});


// Route::group(['middleware' => ['auth:penggunas']], function () {
//     Route::get('/', [DashboardController::class,'index'])->name('dashboard');
// });

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]