65 lines
2.9 KiB
PHP
65 lines
2.9 KiB
PHP
<?php
|
|
require __DIR__.'/vendor/autoload.php';
|
|
$app = require_once __DIR__.'/bootstrap/app.php';
|
|
$kernel = $app->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' => 13.00, 'y' => 22.00], // Rak 01
|
|
$kode_utama <= 50 => ['x' => 18.00, 'y' => 22.00], // Rak 02
|
|
default => ['x' => 25.00, 'y' => 22.00], // Rak 03-05
|
|
},
|
|
$kode_utama >= 100 && $kode_utama <= 199 => match (true) {
|
|
$kode_utama <= 150 => ['x' => 43.00, 'y' => 20.00], // Rak 06-10
|
|
default => ['x' => 57.00, 'y' => 20.00], // Rak 11-14
|
|
},
|
|
$kode_utama >= 200 && $kode_utama <= 299 => match (true) {
|
|
$kode_utama == 297 => ['x' => 25.00, 'y' => 38.00], // Rak 25-32 (Islam)
|
|
default => ['x' => 13.00, 'y' => 38.00], // Rak 15-24
|
|
},
|
|
$kode_utama >= 300 && $kode_utama <= 399 => match (true) {
|
|
$kode_utama <= 330 => ['x' => 43.00, 'y' => 30.00], // Rak 33-36
|
|
$kode_utama <= 360 => ['x' => 50.00, 'y' => 30.00], // Rak 37-40
|
|
default => ['x' => 57.00, 'y' => 30.00], // Rak 41-44
|
|
},
|
|
$kode_utama >= 400 && $kode_utama <= 499 => ['x' => 18.00, 'y' => 62.00], // Rak 45
|
|
$kode_utama >= 500 && $kode_utama <= 599 => ['x' => 50.00, 'y' => 74.00], // Rak 46-48
|
|
$kode_utama >= 600 && $kode_utama <= 699 => match (true) {
|
|
$kode_utama <= 610 => ['x' => 35.00, 'y' => 85.00], // Rak 49-53
|
|
$kode_utama <= 630 => ['x' => 45.00, 'y' => 85.00], // Rak 54-58
|
|
$kode_utama <= 650 => ['x' => 55.00, 'y' => 85.00], // Rak 59-63
|
|
default => ['x' => 65.00, 'y' => 85.00], // Rak 64-68
|
|
},
|
|
$kode_utama >= 700 && $kode_utama <= 799 => match (true) {
|
|
$kode_utama <= 739 => ['x' => 77.00, 'y' => 22.00], // Rak 71
|
|
$kode_utama <= 769 => ['x' => 82.00, 'y' => 22.00], // Rak 72
|
|
$kode_utama <= 789 => ['x' => 87.00, 'y' => 22.00], // Rak 73
|
|
default => ['x' => 82.00, 'y' => 22.00], // Rak 74
|
|
},
|
|
$kode_utama >= 800 && $kode_utama <= 899 => ['x' => 82.00, 'y' => 32.00], // Rak 77-79
|
|
$kode_utama >= 900 && $kode_utama <= 999 => match (true) {
|
|
$kode_utama <= 919 => ['x' => 77.00, 'y' => 42.00], // Rak 69-70
|
|
default => ['x' => 87.00, 'y' => 42.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.";
|