Lewati ke isi

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_items dengan status: REJECTED_BY_CUSTOMER beserta 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:

  1. Sistem secara otomatis mengubah status billing menjadi ABANDONED_ALERT.
  2. Mulai menerapkan tarif "Jasa Penitipan Parkir Kendaraan Terlantar" sebesar Rp 50.000 per hari di luar tagihan servis utama.
  3. 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:

  1. Kepala Bengkel mengalokasikan pengerjaan ke Mekanik Senior (Mekanik B) untuk diagnosa ulang secara netral.
  2. Jika terbukti shockbreaker lama sebenarnya aman (bunyi ternyata disebabkan oleh bushing arm yang aus):
  3. Mekanik B memasang kembali shockbreaker lama milik pelanggan.
  4. Sistem secara otomatis mengkreditkan kembali biaya shockbreaker baru di tagihan kasir menjadi Rp 0.
  5. Biaya jasa mekanik atas salah diagnosa tersebut dihapus total dari komisi Mekanik A.
  6. Seluruh kronologi dispute dicatat di audit_logs dan 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:

  1. Sistem mencocokkan barcode_data yang di-scan dengan SKU yang tercantum di pick-slip digital SPK.
  2. Jika tidak cocok, sistem mengeluarkan peringatan audio error ("Item Salah Ambil") dan menampilkan pesan error di layar gudang.
  3. Stok tidak dipotong. Storekeeper wajib mengambil item yang benar dan scan ulang.
  4. 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:

  1. Kasir melanjutkan proses invoice menggunakan data dari SQLite Cipher lokal (offline mode).
  2. Invoice diterbitkan dan pembayaran diproses secara lokal — kuitansi dicetak ke printer lokal.
  3. Transaksi billing dicatat ke tabel outbox sync_event_logs di SQLite lokal dengan flag pending_sync.
  4. 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.