diff --git a/includes/callcenter_test_helpers.php b/includes/callcenter_test_helpers.php
index 315f445e..a2b3f96e 100644
--- a/includes/callcenter_test_helpers.php
+++ b/includes/callcenter_test_helpers.php
@@ -812,6 +812,53 @@ function cc_test_normalize_user_key(?string $value): string
return mb_strtoupper($value);
}
+function cc_test_callcenter_assessor_filter_session_key(): string
+{
+ return 'callcenter_assessor_filter';
+}
+
+function cc_test_callcenter_assessor_filter_clear_values(): array
+{
+ return ['ALL', 'TODAS', 'TODOS', '__ALL__'];
+}
+
+function cc_test_resolve_callcenter_assessor_filter(array $assessors, ?string $incomingFilter = null, bool $useSessionFallback = true, bool $persistSession = true): string
+{
+ $sessionKey = cc_test_callcenter_assessor_filter_session_key();
+ $incomingFilter = cc_test_normalize_user_key($incomingFilter ?? '');
+ $sessionFilter = cc_test_normalize_user_key($_SESSION[$sessionKey] ?? '');
+
+ if ($incomingFilter !== '') {
+ if (in_array($incomingFilter, cc_test_callcenter_assessor_filter_clear_values(), true)) {
+ unset($_SESSION[$sessionKey]);
+ return '';
+ }
+
+ if (isset($assessors[$incomingFilter])) {
+ if ($persistSession) {
+ $_SESSION[$sessionKey] = $incomingFilter;
+ }
+ return $incomingFilter;
+ }
+
+ if ($persistSession) {
+ unset($_SESSION[$sessionKey]);
+ }
+
+ return '';
+ }
+
+ if ($useSessionFallback && $sessionFilter !== '' && isset($assessors[$sessionFilter])) {
+ return $sessionFilter;
+ }
+
+ if (!$persistSession) {
+ unset($_SESSION[$sessionKey]);
+ }
+
+ return '';
+}
+
function cc_test_allowed_module_user_keys(): array
{
return cc_test_default_assessor_keys();
diff --git a/includes/drive_test_orders.php b/includes/drive_test_orders.php
index d0c593fb..fb930bda 100644
--- a/includes/drive_test_orders.php
+++ b/includes/drive_test_orders.php
@@ -29,8 +29,8 @@ function drive_test_available_stores(): array
'sheet_title' => 'TUANI PEDIDOS',
'spreadsheet_id' => '1QYKeBJIIqYm6yW6Ka-5gKdxhUHwXOAc0No7RjnimxTw',
'sheet_gid' => 1523126328,
- 'startRow' => 5552,
- 'enforce_db_start_row' => false,
+ 'startRow' => 6804,
+ 'enforce_db_start_row' => true,
'incremental_sync' => true,
],
// Bandeja compartida de carritos recuperables: misma estructura, pero desde la fila 2000.
@@ -202,9 +202,12 @@ function drive_test_extract_codigo_number(?string $codigo): ?int
return (int) $digits;
}
-function drive_test_fetch_orders(int $limit = 10, int $startRow = 5552, string $storeKey = 'flower'): array
+function drive_test_fetch_orders(int $limit = 10, ?int $startRow = null, string $storeKey = 'flower'): array
{
$storeConfig = drive_test_get_store_config($storeKey);
+ if ($startRow === null || $startRow <= 0) {
+ $startRow = (int) ($storeConfig['startRow'] ?? 0);
+ }
$credentialsPath = __DIR__ . '/../google_credentials.json';
$spreadsheetId = (string) ($storeConfig['spreadsheet_id'] ?? '');
@@ -612,7 +615,7 @@ function drive_test_sync_orders_incremental(PDO $pdo, string $storeKey, int $ove
{
$storeKey = mb_strtolower(trim($storeKey));
$storeConfig = drive_test_get_store_config($storeKey);
- $baselineStartRow = (int) ($storeConfig['startRow'] ?? 5552);
+ $baselineStartRow = (int) ($storeConfig['startRow'] ?? 0);
drive_test_ensure_orders_table($pdo);
drive_test_ensure_import_checkpoints_table($pdo);
diff --git a/layout_header.php b/layout_header.php
index ad7194e2..cc51dbb2 100644
--- a/layout_header.php
+++ b/layout_header.php
@@ -33,6 +33,23 @@ if ($currentUserId > 0 && !in_array($userRole, ['Administrador', 'admin'], true)
}
$canAccessTestModule = cc_test_is_allowed_module_user($userRole, $currentUserUsername, $currentUserNombreAsesor);
+$currentAssessorFilter = cc_test_normalize_user_key($_GET['assessor'] ?? ($_SESSION[cc_test_callcenter_assessor_filter_session_key()] ?? ''));
+if (in_array($currentAssessorFilter, cc_test_callcenter_assessor_filter_clear_values(), true)) {
+ $currentAssessorFilter = '';
+}
+$shouldPersistAssessor = $currentAssessorFilter !== '';
+$callCenterPersistentParams = $shouldPersistAssessor ? ['assessor' => $currentAssessorFilter] : [];
+$appendCallCenterParams = static function (string $url) use ($callCenterPersistentParams): string {
+ if (empty($callCenterPersistentParams)) {
+ return $url;
+ }
+
+ if (!in_array($url, ['gestiones_callcenter.php', 'call_center_pro.php'], true)) {
+ return $url;
+ }
+
+ return $url . '?' . http_build_query($callCenterPersistentParams);
+};
// Define navigation items for each role
$navItems = [
@@ -451,7 +468,7 @@ $navItems = [
$isActive = $currentPage == $sub_item['url'] ? 'active' : '';
?>
-
+
-
+