KOLE Panamá
← Inicio
📵 Sin conexión — GPS guardando datos localmente
🚌

Panel del Conductor

Gestiona tu servicio, estudiantes y pagos.

¿Sin cuenta? Regístrate gratis
'; cont.innerHTML=html; } function abrirConfParada(idx){ if(!rutaParadas[idx])return; var p=rutaParadas[idx]; paradaActualIdx=idx; document.getElementById('parada-titulo').textContent='📍 '+p.punto; var cont=document.getElementById('parada-cont'); if(p.tipo==='recogida'){ // Confirmación de abordaje de UN alumno cont.innerHTML= '
'+ '
¿'+p.alumno+' abordó el busito?
'+ '
'+ ''+p.alumno+''+ '
'+ ''+ ''+ ''+ '
'+ '
'+ '
'+ '
El padre recibirá una notificación automática con el estado de su hijo.
'; } else { // Entrega en colegio — múltiples alumnos var alumnos=(p.alumnos||[]).map(function(a){ return '
'+ ''+a.nombre+''+ '
'+ ''+ ''+ '
'+ '
'; }).join(''); cont.innerHTML= '
'+ '
Confirma entrega en el colegio
'+alumnos+ '
'+ '
Marca a cada alumno antes de continuar.
'+ ''; } abrir('modal-parada'); } function confirmarParada(idx,estado){ var p=rutaParadas[idx];if(!p)return; // Guardar en historial var db=DB();if(!db.histRutas)db.histRutas={}; var key='ruta_'+new Date().toISOString().split('T')[0]; if(!db.histRutas[key])db.histRutas[key]={fecha:new Date().toLocaleDateString('es-PA'),paradas:[]}; db.histRutas[key].paradas.push({punto:p.punto,alumno:p.alumno,estado:estado,hora:new Date().toLocaleTimeString('es-PA',{hour:'2-digit',minute:'2-digit'})}); saveDB(db); // Notificar al padre (local por ahora) var msg=estado==='abordó'?'✅ '+p.alumno+' abordó el busito': estado==='no_estaba'?'⚠️ '+p.alumno+' no estaba en el punto de recogida': '⏰ '+p.alumno+' tardó en abordar'; agregarAlertaSistema(msg); // Actualizar asistencia if(estado==='abordó') marcarAsist(p.alumnoId, new Date().toISOString().split('T')[0], 'presente'); rutaParadas[idx].completada=true; cerrar('modal-parada'); paradaActualIdx=Math.min(idx+1, rutaParadas.length-1); renderParadasEnVivo(); flash(estado==='abordó'?'✅ '+p.alumno+' confirmado':'📩 Padre notificado'); } function marcarEntrega(paradaIdx, alumnoId, estado){ var btn=event.target; btn.textContent=estado==='entregado'?'✓':'✗'; btn.style.opacity='0.5'; var db=DB();if(!db.entregas)db.entregas={}; db.entregas[alumnoId+'_'+new Date().toISOString().split('T')[0]]=estado; saveDB(db); } function completarParadaColegio(idx){ rutaParadas[idx].completada=true; cerrar('modal-parada'); paradaActualIdx=Math.min(idx+1, rutaParadas.length-1); renderParadasEnVivo(); flash('✅ Parada completada'); } function agregarAlertaSistema(msg){ var db=DB();if(!db.alertas)db.alertas=[]; db.alertas.unshift({id:'sys_'+Date.now(),conductorId:cond?cond.id:'sistema',dest:'todos',msg:msg,fecha:new Date().toLocaleString('es-PA')}); saveDB(db); } // ── EMERGENCIA ── function reportarEmergencia(){abrir('modal-emergencia');} function confirmarEmergencia(){ var nota=document.getElementById('emergencia-nota').value.trim(); var msg='🆘 EMERGENCIA reportada por el conductor'+(nota?' — '+nota:''); agregarAlertaSistema(msg); notificar('🆘 EMERGENCIA KOLE', msg); cerrar('modal-emergencia'); flash('🆘 Emergencia reportada — el administrador fue notificado'); } // ── ACTUALIZAR iniciarRuta con paradas ── var _iniciarRutaOrig=iniciarRuta; iniciarRuta=function(){ _iniciarRutaOrig(); document.getElementById('btn-emergencia').classList.add('visible'); construirParadasDesdeSolicitudes(); }; var _detenerRutaOrig=detenerRuta; detenerRuta=function(){ _detenerRutaOrig(); document.getElementById('btn-emergencia').classList.remove('visible'); rutaParadas=[]; }; function abrir(id){document.getElementById(id).classList.remove('hidden');} function cerrar(id){document.getElementById(id).classList.add('hidden');} var ses=localStorage.getItem('kole_sesion_c'); if(ses){var db0=DB();if(db0.conductores&&db0.conductores[ses]){cond=db0.conductores[ses];entrarDash();}}