diff --git a/db/migrations/054_add_contraentrega_status.sql b/db/migrations/054_add_contraentrega_status.sql new file mode 100644 index 0000000..b263621 --- /dev/null +++ b/db/migrations/054_add_contraentrega_status.sql @@ -0,0 +1 @@ +ALTER TABLE pedidos MODIFY COLUMN estado ENUM('ROTULADO 📦', 'EN TRANSITO 🚛', 'EN DESTINO 🏬', 'COMPLETADO ✅', 'Gestion', 'RUTA_CONTRAENTREGA') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ROTULADO 📦'; \ No newline at end of file diff --git a/db/migrations/056_add_direccion_exacta_to_pedidos.sql b/db/migrations/056_add_direccion_exacta_to_pedidos.sql new file mode 100644 index 0000000..15cbc6a --- /dev/null +++ b/db/migrations/056_add_direccion_exacta_to_pedidos.sql @@ -0,0 +1 @@ +ALTER TABLE pedidos ADD COLUMN direccion_exacta VARCHAR(255) DEFAULT NULL; \ No newline at end of file diff --git a/db/migrations/057_add_seguimiento_to_pedidos.sql b/db/migrations/057_add_seguimiento_to_pedidos.sql new file mode 100644 index 0000000..ebb9045 --- /dev/null +++ b/db/migrations/057_add_seguimiento_to_pedidos.sql @@ -0,0 +1 @@ +ALTER TABLE pedidos ADD COLUMN seguimiento VARCHAR(255) NULL; \ No newline at end of file diff --git a/pedido_form.php b/pedido_form.php index c99500c..4ec51ba 100644 --- a/pedido_form.php +++ b/pedido_form.php @@ -147,6 +147,10 @@ include 'layout_header.php'; +
+ + +

diff --git a/ruta_contraentrega.php b/ruta_contraentrega.php index 534901f..57267d2 100644 --- a/ruta_contraentrega.php +++ b/ruta_contraentrega.php @@ -30,6 +30,9 @@ function getStatusStyle($status) { case 'GESTION': $bgColor = '#6c757d'; // secondary grey break; + case 'RUTA_CONTRAENTREGA': + $bgColor = '#007bff'; // primary blue + break; } return "background-color: {$bgColor} !important; {$style}"; } @@ -56,7 +59,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 = 'RUTA_CONTRAENTREGA'"; $params = []; if ($user_role === 'Asesor') { @@ -147,8 +150,9 @@ include 'layout_header.php'; ID + Seguimiento Cliente - DNI + Celular Dirección Referencia @@ -157,6 +161,7 @@ include 'layout_header.php'; Coordenadas Producto Monto Total + Monto Debe Estado Asesor Fecha Creación @@ -167,16 +172,18 @@ include 'layout_header.php'; + - + - + - + + @@ -191,12 +198,15 @@ include 'layout_header.php'; -

No hay pedidos en ruta contraentrega.

+

No hay pedidos que coincidan con el filtro.

+ + + \ No newline at end of file diff --git a/save_pedido.php b/save_pedido.php index e64abf3..d31e93c 100644 --- a/save_pedido.php +++ b/save_pedido.php @@ -51,6 +51,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $codigo_rastreo = trim($_POST['codigo_rastreo'] ?? ''); $codigo_tracking = trim($_POST['codigo_tracking'] ?? ''); $clave = trim($_POST['clave'] ?? ''); + $seguimiento = trim($_POST['seguimiento'] ?? ''); // --- Manejo de multiples productos --- $productos_post = $_POST['productos'] ?? []; @@ -107,6 +108,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { 'codigo_rastreo' => $codigo_rastreo, 'codigo_tracking' => $codigo_tracking, 'clave' => $clave, + 'seguimiento' => $seguimiento, 'producto' => $producto, 'cantidad' => $cantidad, 'monto_total' => $monto_total, @@ -131,6 +133,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { "codigo_rastreo = :codigo_rastreo", "codigo_tracking = :codigo_tracking", "clave = :clave", + "seguimiento = :seguimiento", "producto = :producto", "cantidad = :cantidad", "monto_total = :monto_total", @@ -170,8 +173,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { // INSERT: The advisor is the user creating the order. $params['asesor_id'] = $_SESSION['user_id']; - $columns_sql = "dni_cliente, nombre_completo, celular, sede_envio, codigo_rastreo, codigo_tracking, clave, producto, cantidad, monto_total, monto_adelantado, numero_operacion, monto_debe, estado, asesor_id, notas, voucher_adelanto_path, voucher_restante_path"; - $values_sql = ":dni_cliente, :nombre_completo, :celular, :sede_envio, :codigo_rastreo, :codigo_tracking, :clave, :producto, :cantidad, :monto_total, :monto_adelantado, :numero_operacion, :monto_debe, :estado, :asesor_id, :notas, :voucher_adelanto_path, :voucher_restante_path"; + $columns_sql = "dni_cliente, nombre_completo, celular, sede_envio, codigo_rastreo, codigo_tracking, clave, seguimiento, producto, cantidad, monto_total, monto_adelantado, numero_operacion, monto_debe, estado, asesor_id, notas, voucher_adelanto_path, voucher_restante_path"; + $values_sql = ":dni_cliente, :nombre_completo, :celular, :sede_envio, :codigo_rastreo, :codigo_tracking, :clave, :seguimiento, :producto, :cantidad, :monto_total, :monto_adelantado, :numero_operacion, :monto_debe, :estado, :asesor_id, :notas, :voucher_adelanto_path, :voucher_restante_path"; $completed_states = ['Completado', 'COMPLETADO ✅']; if (in_array($estado, $completed_states)) { diff --git a/save_pedido_contraentrega.php b/save_pedido_contraentrega.php index 7b65ddf..0aae7bf 100644 --- a/save_pedido_contraentrega.php +++ b/save_pedido_contraentrega.php @@ -62,7 +62,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { 'nombre_completo' => $nombre_completo, 'celular' => $celular, 'sede_envio' => $sede_envio, - 'direccion_cliente' => $direccion_exacta, + 'direccion_exacta' => $direccion_exacta, 'referencia_domicilio' => $referencia_domicilio, 'codigo_rastreo' => $codigo_rastreo, 'codigo_tracking' => $codigo_tracking, @@ -84,7 +84,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { "nombre_completo = :nombre_completo", "celular = :celular", "sede_envio = :sede_envio", - "direccion_cliente = :direccion_cliente", + "direccion_exacta = :direccion_exacta", "referencia_domicilio = :referencia_domicilio", "codigo_rastreo = :codigo_rastreo", "codigo_tracking = :codigo_tracking", @@ -111,10 +111,10 @@ 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'] = 'RUTA_CONTRAENTREGA'; - $columns_sql = "dni_cliente, nombre_completo, celular, sede_envio, direccion_cliente, referencia_domicilio, codigo_rastreo, codigo_tracking, producto, cantidad, monto_total, monto_adelantado, numero_operacion, monto_debe, asesor_id, notas, estado"; - $values_sql = ":dni_cliente, :nombre_completo, :celular, :sede_envio, :direccion_cliente, :referencia_domicilio, :codigo_rastreo, :codigo_tracking, :producto, :cantidad, :monto_total, :monto_adelantado, :numero_operacion, :monto_debe, :asesor_id, :notas, :estado"; + $columns_sql = "dni_cliente, nombre_completo, celular, sede_envio, direccion_exacta, referencia_domicilio, codigo_rastreo, codigo_tracking, producto, cantidad, monto_total, monto_adelantado, numero_operacion, monto_debe, asesor_id, notas, estado"; + $values_sql = ":dni_cliente, :nombre_completo, :celular, :sede_envio, :direccion_exacta, :referencia_domicilio, :codigo_rastreo, :codigo_tracking, :producto, :cantidad, :monto_total, :monto_adelantado, :numero_operacion, :monto_debe, :asesor_id, :notas, :estado"; $sql = "INSERT INTO pedidos ($columns_sql) VALUES ($values_sql)"; $stmt = $pdo->prepare($sql); diff --git a/update_tracking.php b/update_tracking.php index 8a4e49f..ade3614 100644 --- a/update_tracking.php +++ b/update_tracking.php @@ -20,7 +20,9 @@ $pedido_id = $data['id']; $field = $data['field']; $value = $data['value']; -$allowed_fields = ['codigo_rastreo', 'codigo_tracking']; + + +$allowed_fields = ['codigo_rastreo', 'codigo_tracking', 'seguimiento']; if (!in_array($field, $allowed_fields)) { http_response_code(400); echo json_encode(['error' => 'Campo no válido.']);