diff --git a/7796, b/7796,
new file mode 100644
index 00000000..e69de29b
diff --git a/call_center_pro.php b/call_center_pro.php
index 2ef0524e..e59983e6 100644
--- a/call_center_pro.php
+++ b/call_center_pro.php
@@ -267,6 +267,24 @@ function cc_test_import_time(array $order): int
return (int) ($order['id'] ?? 0);
}
+
+function cc_test_order_priority_value(array $order): int
+{
+ $codigo = trim((string) ($order['codigo'] ?? ''));
+ if ($codigo !== '') {
+ $digits = preg_replace('/\D+/', '', $codigo);
+ if ($digits !== '') {
+ return (int) $digits;
+ }
+ }
+
+ $sourceRow = (int) ($order['source_row'] ?? 0);
+ if ($sourceRow > 0) {
+ return $sourceRow;
+ }
+
+ return (int) ($order['id'] ?? 0);
+}
function cc_test_followup_semaforo(array $order): ?array
{
if (cc_test_normalize_state((string) ($order['estado'] ?? '')) !== 'SE ENVIO NUMERO DE CUENTA') {
@@ -845,6 +863,12 @@ try {
$bImport = cc_test_import_time($b);
if ($view === 'nuevos_hoy') {
+ $aOrderNumberValue = cc_test_order_priority_value($a);
+ $bOrderNumberValue = cc_test_order_priority_value($b);
+ if ($aOrderNumberValue !== $bOrderNumberValue) {
+ return $bOrderNumberValue <=> $aOrderNumberValue;
+ }
+
$aAssigned = cc_test_parse_datetime($a['assigned_at'] ?? null);
$bAssigned = cc_test_parse_datetime($b['assigned_at'] ?? null);
if ($aAssigned && $bAssigned && $aAssigned != $bAssigned) {
@@ -859,24 +883,8 @@ try {
}
if ($view === 'ultimos_3_dias') {
- $aOrderNumber = static function (array $order): int {
- $codigo = trim((string) ($order['codigo'] ?? ''));
- if ($codigo !== '') {
- $digits = preg_replace("/[^0-9]+/", '', $codigo);
- if ($digits !== '') {
- return (int) $digits;
- }
- }
-
- $sourceRow = (int) ($order['source_row'] ?? 0);
- if ($sourceRow > 0) {
- return $sourceRow;
- }
-
- return (int) ($order['id'] ?? 0);
- };
- $aOrderNumberValue = $aOrderNumber($a);
- $bOrderNumberValue = $aOrderNumber($b);
+ $aOrderNumberValue = cc_test_order_priority_value($a);
+ $bOrderNumberValue = cc_test_order_priority_value($b);
if ($aOrderNumberValue !== $bOrderNumberValue) {
return $bOrderNumberValue <=> $aOrderNumberValue;
}
@@ -1077,6 +1085,26 @@ if ($selectedAssessorFilter !== '') {
$callCenterParams['assessor'] = $selectedAssessorFilter;
}
+$panelOrdersSignature = isset($visibleOrders) && is_array($visibleOrders) ? cc_test_panel_orders_signature($visibleOrders) : '';
+if (!empty($_GET['ajax_refresh'])) {
+ header('Content-Type: application/json; charset=utf-8');
+ if ($errorMessage !== null) {
+ echo json_encode([
+ 'success' => false,
+ 'error' => $errorMessage,
+ ], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
+ } else {
+ echo json_encode([
+ 'success' => true,
+ 'signature' => $panelOrdersSignature,
+ 'count' => $visibleOrdersTotalCount,
+ 'view' => $view,
+ 'store' => $storeKey,
+ ], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
+ }
+ exit;
+}
+
if ($isTuaniRecuperablesStore) {
$pageTitle = 'Carritos recuperables | Bandeja compartida';
$pageDescription = 'Bandeja compartida para que cualquier asesora gestione carritos recuperables con vistas de seguimiento y observados desde Drive.';
@@ -1307,9 +1335,9 @@ require_once 'layout_header.php';
Drive detectado: filas
Agregados:
: distribución desde fila · último procesado Extracción: desde fila
- Actualización manual
+ Actualización en vivo cada 10 min
Ver vista previa Drive
-
+
@@ -2263,6 +2291,15 @@ require_once 'layout_header.php';