diff --git a/gestiones_callcenter.php b/gestiones_callcenter.php index 0f9beb07..afb72853 100644 --- a/gestiones_callcenter.php +++ b/gestiones_callcenter.php @@ -3,6 +3,11 @@ session_start(); require_once 'db/config.php'; require_once 'includes/callcenter_test_helpers.php'; require_once 'includes/drive_test_orders.php'; +require_once 'includes/contraentrega_cobertura.php'; + +$provinciasPorDepartamentoContraentrega = contraentregaProvinciasPorDepartamento(); +$distritosPorProvinciaContraentrega = contraentregaDistritosPorProvincia(); +$departamentosContraentrega = array_keys($provinciasPorDepartamentoContraentrega); $pageTitle = 'Call Center de Prueba | Bandejas de gestión'; $pageDescription = 'Bandejas diarias de Call Center con estados reales, próxima llamada, fecha de entrega, historial y edición de datos del pedido importado desde Drive.'; @@ -69,12 +74,12 @@ function cc_test_order_label(array $order): string function cc_test_badge_class(string $estado): string { - return match ($estado) { - 'CONFIRMADO CONTRAENTREGA', 'CONFIRMADO CONTRAENTREGA FECHA', 'CONFIRMADO ENVIO', 'CONFIRMADO FECHA', 'CONTRAENTREGA CONFIRMADO' => 'bg-success-subtle text-success-emphasis', + return match (cc_test_normalize_state($estado)) { + 'CONFIRMADO CONTRAENTREGA', 'CONFIRMADO ENVIO' => 'bg-success-subtle text-success-emphasis', 'DEVOLVER LLAMADA' => 'bg-info-subtle text-info-emphasis', 'OBSERVADO' => 'bg-warning-subtle text-warning-emphasis', 'CANCELADO' => 'bg-danger-subtle text-danger-emphasis', - 'REPETIDO', 'ENVIO REPETIDO' => 'bg-secondary-subtle text-secondary-emphasis', + 'REPETIDO' => 'bg-secondary-subtle text-secondary-emphasis', 'SE ENVIO NUMERO DE CUENTA' => 'bg-primary-subtle text-primary-emphasis', default => 'bg-dark-subtle text-dark-emphasis', }; @@ -82,7 +87,7 @@ function cc_test_badge_class(string $estado): string function cc_test_order_time(array $order): int { - foreach (['proxima_llamada_at', 'ultima_gestion_at', 'seguimiento_actualizado', 'import_id'] as $field) { + foreach (['proxima_llamada_at', 'numero_cuenta_enviado_at', 'ultima_gestion_at', 'seguimiento_actualizado', 'import_id'] as $field) { $date = cc_test_parse_datetime($order[$field] ?? null); if ($date) { return $date->getTimestamp(); @@ -92,6 +97,15 @@ function cc_test_order_time(array $order): int return 0; } +function cc_test_followup_semaforo(array $order): ?array +{ + if (cc_test_normalize_state((string) ($order['estado'] ?? '')) !== 'SE ENVIO NUMERO DE CUENTA') { + return null; + } + + return cc_test_account_followup_semaforo($order['numero_cuenta_enviado_at'] ?? null); +} + $view = $_GET['view'] ?? 'pendientes_hoy'; $allowedViews = [ 'pendientes_hoy' => 'Pendientes de hoy', @@ -147,6 +161,7 @@ try { $closedStates = cc_test_closed_states(); foreach ($orders as &$order) { + $order['estado'] = cc_test_normalize_state((string) ($order['estado'] ?? '')); $order['total_llamadas'] = (int) ($callCounts[$order['source_key']] ?? 0); $importDate = cc_test_parse_datetime($order['import_id'] ?? null); $proximaDate = cc_test_parse_datetime($order['proxima_llamada_at'] ?? null); @@ -239,7 +254,7 @@ require_once 'layout_header.php';
Campos editables del módulo
-
Dirección, referencia, sede / ID, ciudad, distrito, DNI y observaciones
+
Dirección, referencia, departamento, provincia, distrito, DNI y observaciones
@@ -311,7 +326,7 @@ require_once 'layout_header.php';

-

Estados disponibles: Por llamar, Devolver llamada, Observado, Se envió número de cuenta, Confirmado contraentrega 📅, Confirmado envío, Cancelado y Repetido.

+

Estados disponibles: Por llamar, Devolver llamada, Observado, Se envió número de cuenta, Confirmado contraentrega, Confirmado envío, Cancelado y Repetido.

El botón Llamar / AirDroid registra el intento, copia el número y muestra la ayuda visual para pegar en tu app de AirDroid.

pedidos en esta bandeja @@ -340,8 +355,14 @@ require_once 'layout_header.php'; @@ -358,8 +379,12 @@ require_once 'layout_header.php';
Dirección:
Referencia:
-
Ciudad / Distrito:
-
Sede / ID:
+
Departamento:
+
Provincia:
+
Distrito:
+ +
DISTRITO 1:
+
@@ -371,10 +396,16 @@ require_once 'layout_header.php';
llamadas + + Seguimiento +
+ +
Número de cuenta enviado hace día ·
+
Próxima llamada:
-
Entrega programada 📅:
+
Entrega programada:
Última gestión:
Nota:
@@ -426,6 +457,14 @@ require_once 'layout_header.php';
Estado actual
+ +
+ Seguimiento +
+
Enviado hace día ·
+ +
El semáforo se activa cuando marques “Se envió número de cuenta”.
+
@@ -467,13 +506,13 @@ require_once 'layout_header.php';
- +
Úsalo cuando el cliente quede en Confirmado fecha.
-
Los estados abiertos vuelven a Pendientes de hoy; Confirmado contraentrega 📅 te permite programar la entrega.
+
Los estados abiertos vuelven a Pendientes de hoy; Confirmado contraentrega te permite programar la entrega.
@@ -494,16 +533,55 @@ require_once 'layout_header.php';
- - + +
- - + +
- - + + + + +
Si la provincia aún no tiene cobertura cargada, podrás escribir el distrito manualmente.
@@ -541,6 +619,8 @@ require_once 'layout_header.php';
Origen vs edición
Dirección Drive:
Referencia Drive:
+
Distrito 1:
+
Distrito:
Observación Drive:
@@ -610,13 +690,134 @@ require_once 'layout_header.php';