MIF_E31230887/update_lokasi.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' => 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.";