diff --git a/dashboard.php b/dashboard.php index 2719b73..f4597ae 100644 --- a/dashboard.php +++ b/dashboard.php @@ -59,7 +59,7 @@ if ($user_role === 'Asesor') { } // Define los estados de los pedidos -$estados = ['ROTULADO 📦', 'EN TRANSITO 🚛', 'EN DESTINO 🏬', 'COMPLETADO ✅', 'Ruta Contraentrega']; +$estados = ['RUTA_CONTRAENTREGA', 'RETORNADO', 'ENTREGA EXITOSA', 'ROTULADO 📦', 'EN TRANSITO 🚛', 'EN DESTINO 🏬', 'COMPLETADO ✅']; $asesor_data = []; $chart_data = []; @@ -560,8 +560,11 @@ $selected_month] . ' ' . $selected_year; ?>) Asesora - " . htmlspecialchars($estado) . ""; + 'Ruta Contraentrega', 'RETORNADO' => 'Retornado', 'ENTREGA EXITOSA' => 'Entrega Exitosa']; + foreach ($estados as $estado): + $display_name = $estado_display_map[$estado] ?? $estado; + echo "" . htmlspecialchars($display_name) . ""; endforeach; ?> Total diff --git a/db/migrations/060_add_contraentrega_statuses.sql b/db/migrations/060_add_contraentrega_statuses.sql new file mode 100644 index 0000000..99503b6 --- /dev/null +++ b/db/migrations/060_add_contraentrega_statuses.sql @@ -0,0 +1,10 @@ +ALTER TABLE pedidos MODIFY COLUMN estado ENUM( + 'ROTULADO 📦', + 'EN TRANSITO 🚛', + 'EN DESTINO 🏬', + 'COMPLETADO ✅', + 'Gestion', + 'RUTA_CONTRAENTREGA', + 'ENTREGA EXITOSA', + 'RETORNADO' +) DEFAULT 'ROTULADO 📦'; \ No newline at end of file diff --git a/layout_header.php b/layout_header.php index caddb0e..597a620 100644 --- a/layout_header.php +++ b/layout_header.php @@ -18,7 +18,7 @@ $navItems = [ 'url' => 'dashboard.php', 'icon' => 'fa-tachometer-alt', 'text' => 'Dashboard', - 'roles' => ['Administrador', 'admin', 'Asesor', 'Control Logistico'] + 'roles' => ['Administrador', 'admin', 'Asesor', 'Control Logistico', 'Soporte Logistico'] ], 'kanban' => [ 'url' => 'kanban.php', @@ -42,13 +42,13 @@ $navItems = [ 'url' => 'buscador_general.php', 'icon' => 'fa-search', 'text' => 'Buscador General', - 'roles' => ['Administrador', 'admin', 'Asesor', 'Control Logistico'] + 'roles' => ['Administrador', 'admin', 'Asesor', 'Control Logistico', 'Soporte Logistico'] ], 'completados' => [ 'url' => 'completados.php', 'icon' => 'fa-check-circle', 'text' => 'Pedidos Completados', - 'roles' => ['Administrador', 'admin', 'Asesor', 'Control Logistico'] + 'roles' => ['Administrador', 'admin', 'Asesor', 'Control Logistico', 'Soporte Logistico'] ], 'listos_para_recojo' => [ 'url' => 'listos_para_recojo.php', @@ -78,13 +78,13 @@ $navItems = [ 'url' => 'pedidos_contraentrega.php', 'icon' => 'fa-hand-holding-usd', 'text' => 'Agregar Pedidos Contraentrega', - 'roles' => ['Administrador', 'admin', 'Asesor', 'Control Logistico'] + 'roles' => ['Administrador', 'admin', 'Asesor', 'Control Logistico', 'Soporte Logistico'] ], 'ruta_contraentrega' => [ 'url' => 'ruta_contraentrega.php', 'icon' => 'fa-route', 'text' => 'Ruta Contraentrega', - 'roles' => ['Administrador', 'admin', 'Asesor', 'Control Logistico'] + 'roles' => ['Administrador', 'admin', 'Asesor', 'Control Logistico', 'Soporte Logistico'] ], 'inventario_group' => [ 'icon' => 'fa-warehouse', diff --git a/manage_users.php b/manage_users.php index fc51b5f..98cdc73 100644 --- a/manage_users.php +++ b/manage_users.php @@ -153,6 +153,7 @@ include 'layout_header.php'; + @@ -235,6 +236,7 @@ include 'layout_header.php'; + diff --git a/pedidos_contraentrega.php b/pedidos_contraentrega.php index 7a8cc53..7d18abc 100644 --- a/pedidos_contraentrega.php +++ b/pedidos_contraentrega.php @@ -133,14 +133,14 @@ include 'layout_header.php';
- +
- +
@@ -201,6 +201,22 @@ include 'layout_header.php';
+
+
+ + +
+
+
diff --git a/ruta_contraentrega.php b/ruta_contraentrega.php index b78d797..5405b96 100644 --- a/ruta_contraentrega.php +++ b/ruta_contraentrega.php @@ -33,6 +33,12 @@ function getStatusStyle($status) { case 'RUTA_CONTRAENTREGA': $bgColor = '#007bff'; // primary blue break; + case 'ENTREGA EXITOSA': + $bgColor = '#198754'; // dark green + break; + case 'RETORNADO': + $bgColor = '#dc3545'; // red + break; } return "background-color: {$bgColor} !important; {$style}"; } @@ -70,7 +76,7 @@ $selected_month = $_GET['mes'] ?? ''; $selected_year = $_GET['año'] ?? ''; $search_query = $_GET['q'] ?? ''; -$sql = "SELECT p.*, u.nombre_asesor as asesor_nombre FROM pedidos p LEFT JOIN users u ON p.asesor_id = u.id WHERE p.estado = 'RUTA_CONTRAENTREGA'"; +$sql = "SELECT p.*, u.nombre_asesor as asesor_nombre FROM pedidos p LEFT JOIN users u ON p.asesor_id = u.id WHERE p.estado IN ('RUTA_CONTRAENTREGA', 'ENTREGA EXITOSA', 'RETORNADO')"; $params = []; if ($user_role === 'Asesor') { @@ -180,6 +186,7 @@ include 'layout_header.php'; Provincia/Distrito Coordenadas Producto + Cantidad Monto Total Monto Debe Estado @@ -237,6 +244,7 @@ include 'layout_header.php'; + diff --git a/save_pedido_contraentrega.php b/save_pedido_contraentrega.php index 1daa83e..d8023f0 100644 --- a/save_pedido_contraentrega.php +++ b/save_pedido_contraentrega.php @@ -107,7 +107,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { "notas = :notas", "seguimiento = :seguimiento", "fecha_entrega = :fecha_entrega", + "estado = :estado", ]; + $params['estado'] = $_POST['estado'] ?? 'RUTA_CONTRAENTREGA'; // Conditionally add asesor_id if ($user_role === 'Administrador' && !empty($_POST['asesor_id'])) { @@ -123,7 +125,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } else { // INSERT: The advisor is the user creating the order. $params['asesor_id'] = $_SESSION['user_id']; - $params['estado'] = 'RUTA_CONTRAENTREGA'; + $params['estado'] = $_POST['estado'] ?? 'RUTA_CONTRAENTREGA'; $columns_sql = "dni_cliente, nombre_completo, celular, sede_envio, direccion_exacta, referencia_domicilio, coordenadas, codigo_rastreo, codigo_tracking, producto, cantidad, monto_total, monto_adelantado, numero_operacion, monto_debe, asesor_id, notas, estado, seguimiento, fecha_entrega"; $values_sql = ":dni_cliente, :nombre_completo, :celular, :sede_envio, :direccion_exacta, :referencia_domicilio, :coordenadas, :codigo_rastreo, :codigo_tracking, :producto, :cantidad, :monto_total, :monto_adelantado, :numero_operacion, :monto_debe, :asesor_id, :notas, :estado, :seguimiento, :fecha_entrega";