๐ Test Customer Asset API Integration
Tanggal Test: 16/08/2026 12:03:00
Status: API INTEGRATION UPDATE
โ
1. PHP 5.6 Compatibility Fixes
| Issue |
Before (PHP 7+) |
After (PHP 5.6+) |
Status |
| Null Coalescing Operator |
$_SESSION['userGroupID'] ?? '' |
isset($_SESSION['userGroupID']) ? $_SESSION['userGroupID'] : '' |
โ
FIXED |
| Array Syntax |
echo json_encode([...]); |
echo json_encode(array(...)); |
โ
FIXED |
| Session Access |
$_SESSION['license'] ?? [] |
isset($_SESSION['license']) ? $_SESSION['license'] : array() |
โ
FIXED |
๐ง 2. API maps_kendaraan.php Updates
New SQL Query with Groups:
SELECT
-- Existing fields...
ISNULL(tbLicenseTran.tid, '') AS groups
FROM dbo.tblatestlocation
LEFT JOIN dtKendaraan ON tblatestlocation.license = dtKendaraan.License
LEFT JOIN dtProduk ON dtProduk.produk = dtKendaraan.Produk
LEFT JOIN tbLicenseTran ON tblatestlocation.license = tbLicenseTran.license
AND tbLicenseTran.customerID BETWEEN
(SELECT MinNo FROM tbUserGroup WHERE userGroupID = '{$userGroupID}')
AND (SELECT MaxNo FROM tbUserGroup WHERE userGroupID = '{$userGroupID}')
WHERE tblatestlocation.License IN ({$lics})
ORDER BY LastRcvTime DESC
Updated Response Fields:
| Field |
Type |
Description |
Source |
| License |
string |
Nomor plat kendaraan |
tblatestlocation.license |
| StatusMesin |
string |
Status mesin (Hidup/Mati) |
Calculated from IgnitionOn |
| jenis |
string |
Jenis kendaraan |
dtKendaraan.Jenis_Kendaraan |
| groups |
string |
Group/TID dari tbLicenseTran |
tbLicenseTran.tid |
| tahun |
string |
Tahun kendaraan |
dtKendaraan.Tahun |
| muatan |
string |
Jenis muatan/produk |
dtKendaraan.Produk |
| warna |
string |
Warna untuk muatan (RGBA) |
dtProduk.warna |
| Waktu |
string |
Waktu terima data |
ReceiveTime + GMT |
| Kecepatan |
number |
Kecepatan kendaraan |
tblatestlocation.speed |
| Arah |
string |
Arah mata angin |
Calculated from Course |
| WaktuGPS |
string |
Waktu GPS |
Time + GMT |
๐จ 3. CustomerAssetPage.vue Updates
Field Mapping Changes:
| Old Field |
New Field |
Description |
Status |
| vehicle.plate |
vehicle.License |
Nomor plat kendaraan |
โ
UPDATED |
| vehicle.status |
vehicle.StatusMesin |
Status mesin (Hidup/Mati) |
โ
UPDATED |
| vehicle.type |
vehicle.jenis |
Jenis kendaraan |
โ
UPDATED |
| vehicle.driver |
vehicle.groups |
Group/TID kendaraan |
โ
UPDATED |
New Features Added:
- API Integration: Mengambil data dari /api/maps_kendaraan
- Loading State: Spinner saat memuat data
- Error Handling: Menampilkan error jika gagal load
- Empty State: Pesan jika tidak ada kendaraan
- Additional Fields: Tahun, muatan dengan warna, waktu, kecepatan, arah
- Hover Title: Menampilkan WaktuGPS saat hover card
- Color Indicator: Warna muatan berdasarkan field warna
Status Color Mapping:
| Status |
Color |
Description |
| Hidup |
positive (green) |
Mesin hidup |
| Mati |
negative (red) |
Mesin mati |
| Maintenance |
warning (yellow) |
Dalam perawatan |
๐งช 4. Testing Scenarios
Test Case 1: API Endpoint Test
- Login: Login API
- Test API: Maps Kendaraan API
- Expected: JSON response dengan field baru (groups, tahun, muatan, warna)
Test Case 2: Frontend Integration
- Start Servers:
# Backend
php -S localhost:8000 -t public
# Frontend
cd frontend && npm run dev
- Login: Frontend Login
- Customer Asset: Customer Asset Page
- Expected: Cards menampilkan data dari API dengan field baru
Test Case 3: Field Verification
| Field |
What to Check |
Expected |
| License |
Card title |
Nomor plat kendaraan |
| StatusMesin |
Status chip color |
Green (Hidup) / Red (Mati) |
| jenis |
Vehicle type text |
Jenis kendaraan dari database |
| groups |
Driver field |
TID dari tbLicenseTran |
| tahun |
Vehicle details |
Tahun kendaraan |
| muatan + warna |
Muatan with color box |
Produk dengan indikator warna |
| Waktu |
Time display |
Format Indonesia dd/mm/yyyy H:i:s |
| Kecepatan |
Speed display |
Angka + "km/h" |
| Arah |
Direction display |
Mata angin (Utara, Selatan, dll) |
| WaktuGPS |
Card hover title |
Tooltip saat hover card |
๐ฏ 5. Expected Results
| Component |
What You Should See |
Status |
| API Response |
JSON dengan field groups, tahun, muatan, warna |
โ
Should Work |
| Vehicle Cards |
Cards dengan data real dari database |
โ
Should Work |
| Status Colors |
Green untuk Hidup, Red untuk Mati |
โ
Should Work |
| Muatan Colors |
Color box sesuai field warna dari database |
โ
Should Work |
| Hover Title |
Tooltip WaktuGPS saat hover card |
โ
Should Work |
| Loading State |
Spinner saat memuat data |
โ
Should Work |
| Error Handling |
Error message jika API gagal |
โ
Should Work |
โ ๏ธ 6. Troubleshooting
API Issues:
| Problem |
Possible Cause |
Solution |
| 403 Forbidden |
No license data in session |
Check login process and session data |
| Empty groups field |
tbLicenseTran data missing |
Check database tbLicenseTran table |
| PHP 5.6 syntax error |
Modern PHP syntax used |
All fixed to PHP 5.6 compatibility |
Frontend Issues:
| Problem |
Possible Cause |
Solution |
| Loading forever |
API endpoint not responding |
Check backend server and API endpoint |
| No color box |
warna field empty or invalid |
Check dtProduk.warna data format |
| No hover title |
WaktuGPS field missing |
Check API response structure |
๐ 7. Next Actions
Checklist Verification:
- โ API maps_kendaraan returns groups field
- โ PHP 5.6 compatibility confirmed
- โ CustomerAssetPage loads data from API
- โ License field displays correctly
- โ StatusMesin shows correct colors
- โ jenis field displays vehicle type
- โ groups field shows in driver section
- โ tahun, muatan fields display
- โ warna shows as color box
- โ Waktu, Kecepatan, Arah display
- โ WaktuGPS shows on hover
- โ Loading and error states work
Generated by: test_customer_asset_api_integration.php | Author: Rodhi | Date: 16/08/2026 12:03:00
Status: READY FOR TESTING