Sentra Automotive — Edge Cases & Incident Handling¶
20.1 Pelanggan Menolak Biaya Tambahan di Tengah Pengerjaan¶
Isu: Mobil dalam kondisi mesin dibongkar. Mekanik menemukan pompa oli rusak berat. SA menghubungi pelanggan via WA untuk persetujuan biaya tambahan Rp 1.500.000, namun pelanggan menolak secara tertulis karena tidak memiliki budget cukup.
Solusi Sistem: Sistem memfasilitasi status "Partially Approved WO":
- Mekanik hanya diizinkan merakit kembali komponen mesin yang sudah dibongkar menggunakan pompa oli lama.
- Sistem secara otomatis mencetak keterangan peringatan bahaya di atas invoice kasir:
"DISCLAIMER: Pelanggan menolak penggantian Pompa Oli baru yang retak parah. Kerusakan mesin lanjutan akibat penolakan ini bukan tanggung jawab garansi bengkel."
- Pelanggan wajib memberikan tanda tangan penolakan darurat di tablet kasir.
- Penolakan direkam di tabel
job_itemsdenganstatus: REJECTED_BY_CUSTOMERbeserta timestamp dan catatan alasan.
20.2 Kendaraan Servis Lama Tidak Diambil Pelanggan (Abandoned Vehicles)¶
Isu: Mobil selesai servis 3 bulan lalu, namun pelanggan menghilang tanpa kabar dan tidak dapat dihubungi via WA, memadati ruang parkir bengkel.
Solusi Sistem: Tepat H+14 setelah status pengerjaan ditandai COMPLETED dan invoice terbit tanpa pelunasan:
- Sistem secara otomatis mengubah status billing menjadi
ABANDONED_ALERT. - Mulai menerapkan tarif "Jasa Penitipan Parkir Kendaraan Terlantar" sebesar Rp 50.000 per hari di luar tagihan servis utama.
- Menerbitkan draf surat teguran hukum otomatis berbasis template hukum bengkel yang dapat diunduh oleh Branch Manager untuk pengiriman fisik ke alamat STNK terdaftar.
20.3 Penanganan Salah Diagnosa Mekanik & Rework Dispute¶
Isu: Mekanik A mendiagnosa kaki-kaki mobil bunyi berdecit disebabkan oleh shockbreaker bocor. Shockbreaker baru dipasang, namun bunyi berdecit tetap terdengar saat uji jalan. Pelanggan komplain keras.
Solusi Sistem: Sistem menyediakan tombol "Rewalk Diagnostic Dispute" di EMR kendaraan:
- Kepala Bengkel mengalokasikan pengerjaan ke Mekanik Senior (Mekanik B) untuk diagnosa ulang secara netral.
- Jika terbukti shockbreaker lama sebenarnya aman (bunyi ternyata disebabkan oleh bushing arm yang aus):
- Mekanik B memasang kembali shockbreaker lama milik pelanggan.
- Sistem secara otomatis mengkreditkan kembali biaya shockbreaker baru di tagihan kasir menjadi Rp 0.
- Biaya jasa mekanik atas salah diagnosa tersebut dihapus total dari komisi Mekanik A.
- Seluruh kronologi dispute dicatat di
audit_logsdan dapat ditampilkan kepada pelanggan sebagai bukti transparansi.
20.4 Barcode Mismatch saat Dispense Gudang¶
Isu: Storekeeper mengambil item yang salah dari rak (misal: mengambil kampas rem Innova padahal yang diminta Avanza) dan men-scan barcodenya.
Solusi Sistem:
- Sistem mencocokkan
barcode_datayang di-scan dengan SKU yang tercantum di pick-slip digital SPK. - Jika tidak cocok, sistem mengeluarkan peringatan audio error ("Item Salah Ambil") dan menampilkan pesan error di layar gudang.
- Stok tidak dipotong. Storekeeper wajib mengambil item yang benar dan scan ulang.
- Jika mismatch terjadi lebih dari 3 kali dalam satu sesi, sistem mengirim notifikasi ke Kepala Gudang untuk review prosedur penempatan rak.
20.5 Koneksi Internet Putus saat Kasir Proses Invoice¶
Isu: Koneksi internet cabang putus secara mendadak tepat saat kasir sedang memproses invoice final pelanggan yang sudah menunggu.
Solusi Sistem:
- Kasir melanjutkan proses invoice menggunakan data dari SQLite Cipher lokal (offline mode).
- Invoice diterbitkan dan pembayaran diproses secara lokal — kuitansi dicetak ke printer lokal.
- Transaksi billing dicatat ke tabel outbox
sync_event_logsdi SQLite lokal dengan flagpending_sync. - Begitu internet kembali, Go-Edge Sync Daemon melakukan push ke cloud AWS dengan CRDT conflict resolution — data lokal diprioritaskan jika tidak ada konflik dari sisi server.