<?php
require_once __DIR__.'/../../config/auth.php';require_once __DIR__.'/_tareas.php';$admin=tareas_es_admin($conn);$colaborador=tareas_colaborador_id($conn);$alcance=tareas_alcance_sql($admin,$colaborador,'t');
$metricas=$conn->query("SELECT COUNT(*) total,SUM(estado='Pendiente') pendientes,SUM(estado='En Proceso') proceso,SUM(estado='Finalizado') finalizadas,SUM(estado IN ('Pendiente','En Proceso') AND fecha_vencimiento<CURDATE()) vencidas,SUM(estado IN ('Pendiente','En Proceso') AND fecha_vencimiento BETWEEN CURDATE() AND DATE_ADD(CURDATE(),INTERVAL 7 DAY)) proximas FROM tareas t WHERE $alcance")->fetch_assoc();
$responsables=$conn->query("SELECT CONCAT(c.nombres,' ',c.apellidos) responsable,COUNT(t.id) total,SUM(t.estado='Pendiente') pendientes,SUM(t.estado='En Proceso') proceso,SUM(t.estado IN ('Pendiente','En Proceso') AND t.fecha_vencimiento<CURDATE()) vencidas FROM colaboradores c JOIN tareas t ON t.responsable_id=c.id WHERE c.estado='Activo' AND $alcance GROUP BY c.id HAVING total>0 ORDER BY vencidas DESC,total DESC LIMIT 10");
$urgentes=$conn->query("SELECT t.id,t.titulo,t.fecha_vencimiento,t.estado,cl.nombre cliente,CONCAT(co.nombres,' ',co.apellidos) responsable FROM tareas t JOIN clientes cl ON cl.id=t.cliente_id JOIN colaboradores co ON co.id=t.responsable_id WHERE t.estado IN ('Pendiente','En Proceso') AND $alcance ORDER BY (t.fecha_vencimiento<CURDATE()) DESC,t.fecha_vencimiento,t.id LIMIT 10");
$actividad=$conn->query("SELECT s.creado_en,s.detalle,t.id,t.titulo,cl.nombre cliente FROM tarea_seguimientos s JOIN tareas t ON t.id=s.tarea_id JOIN clientes cl ON cl.id=t.cliente_id WHERE $alcance ORDER BY s.creado_en DESC,s.id DESC LIMIT 8");
include __DIR__.'/../../includes/header.php';include __DIR__.'/../../includes/sidebar.php';?>
<main class="main"><?php include __DIR__.'/../../includes/topbar.php';?><div class="content"><div class="d-flex justify-content-between align-items-center mb-4"><div><h3 class="page-title mb-1"><i class="fa fa-list-check me-2"></i>Gestión de Tareas</h3><p class="text-muted mb-0">Centro de carga, ejecución, seguimiento y control.</p></div><?php if(tiene_permiso_menu($conn,'gestion_tareas_nueva')):?><a class="btn btn-hm" href="/HM/modules/gestion_tareas/tareas.php?accion=nuevo"><i class="fa fa-plus me-1"></i>Nueva tarea</a><?php endif;?></div><?php if(isset($_GET['creada'])):?><div class="alert alert-success">La tarea fue creada y asignada correctamente.</div><?php endif;?>
<div class="row g-3 mb-4"><?php foreach([['Total',$metricas['total'],'primary'],['Pendientes',$metricas['pendientes'],'warning'],['En proceso',$metricas['proceso'],'info'],['Vencidas',$metricas['vencidas'],'danger'],['Próximos 7 días',$metricas['proximas'],'secondary'],['Finalizadas',$metricas['finalizadas'],'success']] as $m):?><div class="col-6 col-lg-2"><div class="card card-hm h-100"><div class="card-body"><small class="text-muted"><?=e($m[0])?></small><div class="fs-2 fw-bold text-<?=$m[2]?>"><?=numero_py($m[1])?></div></div></div></div><?php endforeach;?></div>
<div class="row g-3 mb-4"><?php foreach([['Nueva tarea','Alta y asignación de una nueva actividad.','fa-plus','tareas.php?accion=nuevo','gestion_tareas_nueva'],['Todas las tareas','Buscar, filtrar y dar seguimiento.','fa-table-list','tareas.php','gestion_tareas_todas'],['Remisiones','Servicios técnicos, equipos y seguimientos.','fa-clipboard-check','/HM/modules/movimientos/remisiones.php','remisiones'],['Notas','Hoja personal para anotaciones de trabajo.','fa-note-sticky','notas.php','gestion_tareas_notas'],['Proyectos','Objetivos, hitos y seguimiento de proyectos.','fa-diagram-project','/HM/modules/movimientos/proyectos.php','proyectos'],['Reportes','Analizar productividad, cumplimiento y carga.','fa-chart-column','reportes.php','gestion_tareas_reportes']] as $o):if(!tiene_permiso_menu($conn,$o[4]))continue;?><div class="col-md-6 col-xl-4"><a class="module-card" href="<?=e($o[3])?>"><div class="icon"><i class="fa <?=e($o[2])?>"></i></div><h5><?=e($o[0])?></h5><p><?=e($o[1])?></p></a></div><?php endforeach;?></div>
<div class="row g-3"><div class="col-xl-7"><div class="card card-hm h-100"><div class="card-body table-responsive"><h5>Tareas que requieren atención</h5><table class="table table-hover"><thead><tr><th>Vencimiento</th><th>Tarea</th><th>Cliente</th><th>Responsable</th><th>Estado</th></tr></thead><tbody><?php while($t=$urgentes->fetch_assoc()):$v=$t['fecha_vencimiento']<date('Y-m-d');?><tr class="<?=$v?'table-danger':''?>"><td><?=e(date('d/m/Y',strtotime($t['fecha_vencimiento'])))?></td><td><a href="tareas.php?accion=ver&id=<?=$t['id']?>"><?=e($t['titulo'])?></a></td><td><?=e($t['cliente'])?></td><td><?=e($t['responsable'])?></td><td><?=e($t['estado'])?></td></tr><?php endwhile;?></tbody></table></div></div></div><div class="col-xl-5"><div class="card card-hm h-100"><div class="card-body"><h5>Actividad reciente</h5><?php if(!$actividad->num_rows):?><p class="text-muted">Sin seguimientos registrados.</p><?php endif;while($a=$actividad->fetch_assoc()):?><div class="border-start border-3 ps-3 mb-3"><small class="text-muted"><?=e(date('d/m/Y H:i',strtotime($a['creado_en'])))?></small><div><a href="tareas.php?accion=ver&id=<?=$a['id']?>"><?=e($a['titulo'])?></a></div><div class="small text-muted"><i class="fa fa-building me-1"></i>Cliente: <?=e($a['cliente'])?></div><div class="small"><?=e(mb_strimwidth($a['detalle'],0,130,'…'))?></div></div><?php endwhile;?></div></div></div></div>
<div class="card card-hm mt-3"><div class="card-body table-responsive"><h5>Carga por responsable</h5><table class="table"><thead><tr><th>Responsable</th><th class="text-end">Total</th><th class="text-end">Pendientes</th><th class="text-end">En proceso</th><th class="text-end">Vencidas</th></tr></thead><tbody><?php while($r=$responsables->fetch_assoc()):?><tr><td><?=e($r['responsable'])?></td><td class="text-end"><?=numero_py($r['total'])?></td><td class="text-end"><?=numero_py($r['pendientes'])?></td><td class="text-end"><?=numero_py($r['proceso'])?></td><td class="text-end text-danger"><?=numero_py($r['vencidas'])?></td></tr><?php endwhile;?></tbody></table></div></div></div></main><?php include __DIR__.'/../../includes/footer.php';?>
