make(Illuminate\Contracts\Console\Kernel::class); $kernel->bootstrap(); $bukus = App\Models\Buku::all(); $count = 0; foreach ($bukus as $buku) { if (empty($buku->nomor_panggil)) continue; $kode_utama = (int) substr(trim(preg_replace('/[^0-9]/', '', $buku->nomor_panggil)), 0, 3); $koordinat = match (true) { $kode_utama >= 0 && $kode_utama <= 99 => match (true) { $kode_utama <= 19 => ['x' => 12.00, 'y' => 13.00], // Rak 01 $kode_utama <= 50 => ['x' => 17.00, 'y' => 13.00], // Rak 02 default => ['x' => 22.00, 'y' => 13.00], // Rak 03-05 }, $kode_utama >= 100 && $kode_utama <= 199 => match (true) { $kode_utama <= 150 => ['x' => 35.00, 'y' => 13.00], // Rak 06-10 default => ['x' => 35.00, 'y' => 17.00], // Rak 11-14 }, $kode_utama >= 200 && $kode_utama <= 299 => match (true) { $kode_utama == 297 => ['x' => 14.00, 'y' => 38.00], // Rak 25-32 (Islam) default => ['x' => 14.00, 'y' => 30.00], // Rak 15-24 }, $kode_utama >= 300 && $kode_utama <= 399 => match (true) { $kode_utama <= 330 => ['x' => 38.00, 'y' => 23.00], // Rak 33-36 $kode_utama <= 360 => ['x' => 43.00, 'y' => 23.00], // Rak 37-40 default => ['x' => 48.00, 'y' => 23.00], // Rak 41-44 }, $kode_utama >= 400 && $kode_utama <= 499 => ['x' => 14.00, 'y' => 58.00], // Rak 45 $kode_utama >= 500 && $kode_utama <= 599 => ['x' => 38.00, 'y' => 72.00], // Rak 46-48 $kode_utama >= 600 && $kode_utama <= 699 => match (true) { $kode_utama <= 610 => ['x' => 28.00, 'y' => 83.00], // Rak 49-53 $kode_utama <= 630 => ['x' => 36.00, 'y' => 83.00], // Rak 54-58 $kode_utama <= 650 => ['x' => 44.00, 'y' => 83.00], // Rak 59-63 default => ['x' => 52.00, 'y' => 83.00], // Rak 64-68 }, $kode_utama >= 700 && $kode_utama <= 799 => match (true) { $kode_utama <= 739 => ['x' => 82.00, 'y' => 12.00], // Rak 71 $kode_utama <= 769 => ['x' => 86.00, 'y' => 12.00], // Rak 72 $kode_utama <= 789 => ['x' => 82.00, 'y' => 16.00], // Rak 73 default => ['x' => 86.00, 'y' => 16.00], // Rak 74 }, $kode_utama >= 800 && $kode_utama <= 899 => ['x' => 82.00, 'y' => 25.00], // Rak 77-79 $kode_utama >= 900 && $kode_utama <= 999 => match (true) { $kode_utama <= 919 => ['x' => 82.00, 'y' => 30.00], // Rak 69-70 default => ['x' => 82.00, 'y' => 35.00], // Rak 80-84 }, default => ['x' => null, 'y' => null], }; if ($koordinat['x'] !== null) { $buku->lokasi_x = $koordinat['x']; $buku->lokasi_y = $koordinat['y']; $buku->save(); $count++; } } echo "Berhasil update $count buku presisi.";