Petrokimia - EXCELLO
Logo

-

Help Desk

Pembagian Kuota PBB Berikut ini merupakan data riwayat pembagian kuota PBB dari aplikasi Excellence In Customer Safety & Loyality

Changelog

Apa yang Baru di EXCELLO?

Diperbarui 14 Maret 2026, 14:29 WIB —

Halo! Ada beberapa pembaruan untuk Anda
Kami telah meningkatkan sistem agar lebih aman, cepat, dan nyaman digunakan.
📋
Laporan SO Detail Tampilkan Semua PPB
Laporan SO Detail untuk distributor/konsumen kini kembali menampilkan seluruh PPB, termasuk yang berstatus “Belum Diproses” — tidak lagi hanya PPB yang sudah diambil.
🔒
Dokumen Anda Lebih Aman
Dokumen penting seperti surat kuasa dan KTP sekarang hanya bisa dilihat setelah login. Tidak ada orang luar yang bisa mengakses dokumen Anda.
Halaman Lebih Cepat Dibuka
Halaman Daftar SO, Antrian Truk, dan Data PPB yang sebelumnya sering loading lama, sekarang terbuka dalam hitungan detik.
🔑
Login Lebih Aman
Jika ada yang mencoba masuk ke akun Anda berkali-kali dengan password salah, sistem akan otomatis memblokir sementara. Akun Anda lebih terlindungi.
📄
Cetak PPB Lebih Rapi
Jika tanda tangan atau stempel belum diunggah, halaman cetak PPB sekarang menampilkan keterangan yang jelas, bukan gambar rusak.
📊
Laporan Holding Cost Lebih Akurat
Angka pada laporan summary holding cost sebelumnya kurang tepat. Sekarang sudah diperbaiki dan bisa diandalkan.
🔔
Notifikasi WhatsApp & Push Lebih Lancar
Pengiriman notifikasi ke WhatsApp dan HP Anda sekarang menggunakan koneksi yang lebih aman dan stabil.
🔍
Laporan PPB Bisa Difilter per Konsumen
Halaman Laporan PPB kini memiliki filter Konsumen. Export Excel untuk data banyak juga tidak lagi error 502.
💡 Perlu upload ulang?
Jika tanda tangan atau stempel Anda tidak muncul saat cetak PPB, silakan buka Profil lalu Edit untuk mengunggah ulang file tanda tangan dan stempel Anda.
Dampak Pembaruan
15
Celah Keamanan
ditutup — sebelumnya terbuka dan berisiko
900x
Lebih Cepat
halaman SO — dari timeout menjadi <1 detik
46
Perbaikan
dari 48 item — 96% terselesaikan
Hemat Biaya Google Maps
Sebelum
Setiap buka halaman PPB: 4-6 panggilan ke Google Maps API langsung dari browser — bayar Rp 930rb/bulan untuk lokasi yang sebenarnya sama berulang-ulang
Sesudah
Lokasi yang sudah pernah dicari di-cache 30 hari di server. Lokasi sama hanya bayar 1x. Estimasi cache hit-rate 60-80% — saving Rp 550-750rb/bulan
Manfaat: Biaya Google Maps turun 60-80%. Tidak ada perubahan tampilan/fungsi untuk user. Pelajaran: sumber biaya cloud tersembunyi di setiap halaman PPB.
Keamanan Data Ditingkatkan
Sebelum
Dokumen KTP, surat kuasa, dan kontrak bisa diakses siapa saja tanpa login — cukup tebak URL
Sesudah
Dokumen sensitif hanya bisa diakses pengguna yang sudah login. Tipe file publik dibatasi
Sebelum
Login bisa dicoba tanpa batas — rawan pembobolan akun secara otomatis
Sesudah
Maks 10 percobaan/menit. Percobaan berlebih otomatis diblokir sistem
Manfaat: Data konsumen dan dokumen perusahaan terlindungi. Memenuhi standar keamanan OWASP Top 10.
Kecepatan Drastis Meningkat
Sebelum
Halaman Daftar SO, Antrian Truk, dan Data PPB timeout (tidak bisa dibuka — loading lebih dari 5 menit)
Sesudah
Daftar SO 0.3 detik, Antrian Truk 2 detik, Data PPB 3 detik
Sebelum
Import data SO dari Excel — setiap baris menjalankan 4 query terpisah (ribuan query untuk 1 file)
Sesudah
Data di-cache otomatis — import 1000 baris hanya perlu ~10 query, bukan 4000
Manfaat: Pengguna tidak perlu menunggu loading lama. Proses import SO jauh lebih cepat. 10 index database baru ditambahkan.
Sistem Lebih Stabil & Akurat
Sebelum
Proses otomatis (checkout security, holding cost) bisa berjalan bersamaan — risiko data duplikat
Sesudah
Semua 6 proses otomatis dilindungi dari tumpang tindih. Data selalu konsisten
Sebelum
Laporan Holding Cost menampilkan angka yang kurang akurat karena bug prioritas operator
Sesudah
Kalkulasi diperbaiki — angka holding cost kini akurat dan dapat diandalkan
Manfaat: Data transaksi konsisten, laporan keuangan akurat. Tabel log dibersihkan dari 5.7GB menjadi lebih ringan.
Pemeliharaan Lebih Efisien
Sebelum
11 file ekspor Excel berisi kode yang sama persis (750 baris duplikat) — perubahan harus diedit di 11 tempat
Sesudah
Kode digabung ke 1 komponen terpusat — perubahan cukup di 1 tempat, berlaku untuk semua
Manfaat: Perbaikan bug dan pengembangan fitur baru menjadi lebih cepat. Risiko inkonsistensi antar modul diminimalkan.
30 Mei 2026 Jumat
WIB
Bug Fix Edit Data Driver — Ditolak Padahal PPB Belum Diproses
Saat mengubah/menghapus data driver muncul notif “Data driver tidak bisa diubah, karena sudah ada transaksi yang berlangsung” padahal PPB driver tersebut masih berstatus Belum Diproses (belum check-in/timbang). Penyebab: pengecekan menganggap PPB yang belum diproses sebagai transaksi aktif. Sekarang edit/hapus driver hanya diblokir bila ada PPB yang transaksinya benar-benar sedang berlangsung (sudah check-in satpam s/d check-out). Driver dengan PPB Belum Diproses atau yang sudah selesai kini bisa diedit kembali.
21 Mei 2026 Kamis
WIB
Bug Fix Buat PPB — Tidak Bisa Simpan Walau Lokasi Sudah Diisi
Saat membuat/edit PPB, muncul notif “Estimasi Awal/Akhir field is required” padahal Lokasi Awal & Akhir sudah di-set di peta — konsumen/distributor jadi tidak bisa simpan PPB. Penyebab: estimasi waktu tempuh rute (dihitung otomatis dari peta) kadang gagal terhitung untuk rute tertentu, padahal lokasinya valid. Sekarang estimasi waktu jadi opsional: PPB tetap bisa disimpan selama Lokasi Awal & Akhir sudah diisi.
8 Mei 2026 Jumat
WIB
Bug Fix Edit SO — Departemen Tidak Bisa Dipilih oleh Candal/Admin
Pada modal Edit SO, dropdown Departemen ter-disable untuk role selain Penjualan. Sehingga SO yang departemennya kosong tidak bisa diperbaiki oleh Candal/Admin meski mereka punya hak edit. Sekarang dropdown enabled untuk role Penjualan, Candal, dan Admin sesuai izin di backend.
4 Mei 2026 Minggu
WIB
Bug Fix No PPB Tampil Scientific Notation di Excel SO Detail
Nomor PPB 13 digit (misal 1184894270064) tampil sebagai 1,18489E+12 di laporan SO Detail Excel. Fix: kolom No PPB dipaksa baca sebagai teks via format cell.
WIB
Bug Fix Kolom Tanggal SO Detail Tidak Tampilkan Waktu
Kolom Tanggal di laporan SO Detail hanya menampilkan tanggal (dd/mm/yyyy), tidak ada waktu. Sekarang menampilkan waktu check-in loket lengkap (dd/mm/yyyy hh:mm:ss), sesuai tampilan di 2CE.
15 Maret 2026 Minggu
00:30 WIB
Bug Fix Storage Shared — File TTD/Stempel Sekarang Muncul
Storage EXCELLO dan WMS2CE sekarang menggunakan folder yang sama. Semua file TTD, stempel, dan PIC yang sebelumnya tidak muncul kini tampil dengan benar.
01:00 WIB
Refactor AutoCheckout Service — Duplikasi Logic Dihilangkan
Logic checkout security yang duplikat di 2 command (waktu + jarak) digabung ke 1 service class. Kode lebih bersih dan mudah dimaintain.
00:15 WIB
Audit Audit Permission Middleware + BaseModel
Audit semua permission yang di-comment di routes — semua sengaja, sistem sudah aman via role middleware. BaseModel dibuat untuk standarisasi model ke depan.
14 Maret 2026 Sabtu
16:30 WIB
Bug Fix Perbaikan TTD/Stempel Tidak Muncul di Cetak PPB
File tanda tangan dan stempel konsumen/transporter yang hilang dari server kini ditampilkan dengan placeholder rapi. Admin dan konsumen mendapat notifikasi untuk upload ulang.
14:30 WIB
Fitur Baru Halaman Changelog / Pembaruan Sistem
Tombol "Pembaruan" di pojok kanan bawah setiap halaman. Menampilkan riwayat perbaikan dalam 3 tab: Ringkasan, Timeline, dan Detail Teknis.
14:00 WIB
Performa Optimasi Bulk Operations & DB Maintenance
Loop save/delete diganti single query di 5 controller. Import Excel N+1 di-cache. SAP sync di-cache. Command baru: maintenance:archive-user-logs (1.7 juta log dibersihkan, hemat ~4GB) dan maintenance:vacuum.
13:30 WIB
Performa Database Index — Endpoint dari Timeout Menjadi Instan
10 index kritis ditambahkan. Hasil benchmark di server production:
• Daftar SO: timeout → 0.3 detik
• Antrian Truk: timeout → 2 detik
• Data PPB: timeout → 3 detik
12:00 WIB
Infrastruktur Sprint 4 & 5 — Kualitas Kode & Infrastruktur
withoutOverlapping() di 6 scheduled command (cegah duplikasi proses)
• Chunk transaksi penyesuaian stok per 200 record
• Refactor TerminatePidProcess (hapus 500+ char hardcoded SQL)
• Trait HasExportLogo — 750 baris duplikat di 11 file ekspor dihapus
• Fix bug kalkulasi holding cost (operator precedence)
11:00 WIB
Sprint 3 Integritas Data & Model
• Proteksi mass assignment di 5 model
• Fix bug transaksi di LoadingPlanDetailQuota boot()
• Fix typo $cast → $casts, relasi copy-paste error
• Filter data sensitif (password/token) dari log
• Index deleted_at untuk 48 tabel SoftDeletes
10:30 WIB
Sprint 2 Keamanan Tingkat Tinggi
• Rate limiting login: maks 10 percobaan/menit
• Timing-safe token comparison (hash_equals)
• SSL verification aktif di Firebase & WhatsApp
• Error message di-sanitize di production
• XSS middleware diperbaiki
09:00 WIB
Sprint 1 Perbaikan Keamanan Kritis
• Fix SQL Injection di 4 controller (AuthController, ReportController, FeedsController, BatasWaktuController)
• Fix Path Traversal — cegah akses file ../../.env via API
• Firebase credential diamankan dari repository
• Validasi max file upload (5MB gambar, 10MB PDF)
• Endpoint file publik dibatasi hanya untuk tipe feed
30 Mei 2026 — Bug Fix Edit/Hapus Driver 1 item
DriverController::update() & destroy(): guard transaksi driver semula whereNotIn('status', [6,10]) (update) dan tanpa filter status (destroy) — status 1 (Belum Diproses) ikut terdeteksi sebagai “transaksi berlangsung” (false positive). Diganti ke whitelist status aktif whereIn('status', [2,3,4,5,7,8,9]) (Check In Satpam s/d Check Out K3) sesuai InformationService. Status 1 (belum diproses) & 6/10 (selesai) tidak lagi memblokir. Drivers pakai SoftDeletes sehingga hapus tetap recoverable.
23 Mei 2026 — Server-side Maps Proxy Cache 3 item
Backend baru MapsProxyController dengan 3 endpoint: GET /api/maps-proxy/geocode, /distance-matrix, /directions. Pakai Cache::remember() (default driver file, kompatibel Redis nanti). TTL: geocode 30 hari, distance/directions 7 hari. Cache key by lat/lng round 5 desimal (~1m precision). Hanya cache response status=OK atau ZERO_RESULTS. Middleware: jwt.auth + throttle:60,1.
Frontend ppb.js 5 call site direplace: 4 geocoder.geocode() + 1 DistanceMatrixService.getDistanceMatrix() → helper proxyReverseGeocode() & proxyDistanceMatrix() di top file. Sinyatur callback dipertahankan agar logic UI tidak berubah. Handle LatLng instance dan plain {lat,lng} object.
cetak-so.js:getLocationName() + dashboard.js (loop gudang) juga diganti ke proxy endpoint. directionsService.route() di show-rute.blade.php tidak diubah (renderer widget Google SDK, billing kecil — skipped).
21 Mei 2026 — Bug Fix PPB 1 item
Relax validasi estimate & estimate_end dari required jadi nullable di LoadingPlanController::storePPB() & updatePPB(). Estimasi waktu rute dihitung frontend via Google Directions yang kadang gagal walau lokasi valid — kolom DB sudah nullable & field hanya untuk display (?? '-'). User tidak lagi ter-block save PPB saat estimasi gagal terhitung.
Sprint 1 — Critical Security 7 item
Fix SQL Injection di AuthControllerDB::unprepared() diganti Query Builder
Fix SQL Injection di ReportController, FeedsController, BatasWaktuController — parameter binding
Fix Path Traversal di ShowFileController::previewDO() — validasi realpath()
Firebase credential (wms-firebase.json) ditambah ke .gitignore
Validasi max file size: gambar 5MB, PDF 10MB di 3 controller
Endpoint publik show_file_login dibatasi hanya tipe feed
Sprint 2 — High Security 5 item
Rate limiting: login throttle:10,1, reset password throttle:5,1
hash_equals() di StaticTokenMiddleware (timing-safe)
SSL verification diaktifkan di SendFirebase & SendWa
Error 500 di-sanitize via getResponse() — detail tersembunyi di production
XSS middleware: tambah is_string() check
Sprint 3 — Model & Data Integrity 8 item
$guarded = ['id'] di 5 model: Activity, Foreman, Queue, DriverB3, LoadingPlanStopHistory
Fix boot() transaction bug di LoadingPlanDetailQuota
Fix typo $cast$casts di B3ClasificationType
Hapus relasi copy-paste error di ConveyanceFile
Filter data sensitif (password, token) di UserLog::saveLog()
Escape LIKE wildcards di StockArea search
Migration: index deleted_at untuk 48 tabel SoftDeletes
Boolean $casts di RolePermission
Infrastruktur & Performa 13 item
withoutOverlapping() di semua 6 scheduled commands
env()config() di AutoCheckoutSecurityDistanceCommand
Chunk transaksi per batch 200 di AutoAdjustStockPerShift
Refactor TerminatePidProcess — hapus 500+ char hardcoded SQL
Trait HasExportLogo — -898 baris duplikat di 11 file export
Gabung HoldingCostCalculation + InsertMonthly → 1 command
10 database index kritis: consumer_id, loading_plan_id, status, transporter_id, ppb_id, dll
->get()->count()->count() di LoadingPlan & Transporter
Bulk update WeighBridgeDetail (4 tempat loop → single query)
Bulk delete+insert di HoldingCostController & ConsumerController
N+1 cache di LoadingPlanImport dan getDataSap
Command maintenance:archive-user-logs (cleanup 5.7GB log)
Command maintenance:vacuum untuk VACUUM tabel berat
Bug Fix & UI 4 item
Fix broken image TTD/stempel di cetak PPB — placeholder + file_missing flag di Resource + notifikasi upload ulang di profil & halaman admin
Changelog 4 tab: Untuk Anda (user awam), Ringkasan (admin), Timeline (kronologis), Detail Teknis — role-based tab visibility
Deploy script SSH key + skip route:cache + single git pull
Laporan PPB: tambah filter consumer_id[] di ReportController@reportPPB + LoadingPlanController@indexPPB — validasi exists:consumers,id; tambah sConsumer() Select2 di laporan-ppb.js; fix 502 dengan set_time_limit(300) + memory_limit=512M
Edit SO: dropdown #select-departement di daftar-so.js:2201 — kondisi disable diselaraskan dengan permission backend (role:penjualan,candal di api.php:400) dan rule admin. Sekarang enabled untuk Penjualan, Candal, Admin.