diff --git a/assets/uploads/vouchers/6a11abf1d82a5-066.png b/assets/uploads/vouchers/6a11abf1d82a5-066.png new file mode 100644 index 00000000..38f1d2e9 Binary files /dev/null and b/assets/uploads/vouchers/6a11abf1d82a5-066.png differ diff --git a/assets/uploads/vouchers/6a11acdda4cb9-090.png b/assets/uploads/vouchers/6a11acdda4cb9-090.png new file mode 100644 index 00000000..b4c247f3 Binary files /dev/null and b/assets/uploads/vouchers/6a11acdda4cb9-090.png differ diff --git a/assets/uploads/vouchers/6a11adff3ab3f-859.png b/assets/uploads/vouchers/6a11adff3ab3f-859.png new file mode 100644 index 00000000..28cf79a5 Binary files /dev/null and b/assets/uploads/vouchers/6a11adff3ab3f-859.png differ diff --git a/assets/uploads/vouchers/6a11b6cc6e69e-Screenshot_363.png b/assets/uploads/vouchers/6a11b6cc6e69e-Screenshot_363.png new file mode 100644 index 00000000..577879bb Binary files /dev/null and b/assets/uploads/vouchers/6a11b6cc6e69e-Screenshot_363.png differ diff --git a/assets/uploads/vouchers/6a11ca92830ee-513.png b/assets/uploads/vouchers/6a11ca92830ee-513.png new file mode 100644 index 00000000..39f3375d Binary files /dev/null and b/assets/uploads/vouchers/6a11ca92830ee-513.png differ diff --git a/gestiones.php b/gestiones.php index 919a3055..87f3464f 100644 --- a/gestiones.php +++ b/gestiones.php @@ -240,7 +240,7 @@ $(document).ready(function() { "language": { "url": "//cdn.datatables.net/plug-ins/1.10.25/i18n/Spanish.json" }, - "order": [[ , "desc" ]], + "order": [[ 0, "desc" ]], "paging": false, "lengthChange": false, "info": false diff --git a/pedidos_contraentrega.php b/pedidos_contraentrega.php index d13001b8..dca6b252 100644 --- a/pedidos_contraentrega.php +++ b/pedidos_contraentrega.php @@ -147,7 +147,7 @@ include 'layout_header.php';
- +
diff --git a/ruta_contraentrega.php b/ruta_contraentrega.php index 04bd3ed2..33874c35 100644 --- a/ruta_contraentrega.php +++ b/ruta_contraentrega.php @@ -345,11 +345,7 @@ $(document).ready(function() { "language": { "url": "//cdn.datatables.net/plug-ins/1.10.25/i18n/Spanish.json" }, - "order": [[ , "desc" ]], + "order": [[ 0, "desc" ]], "paging": false, "lengthChange": false, "info": false @@ -375,7 +371,6 @@ document.addEventListener('DOMContentLoaded', function() { const options = [ {val: '', text: 'Seleccionar'}, {val: 'RUTA', text: 'RUTA'}, - {val: 'CONTRAENTREGA', text: 'CONTRAENTREGA'}, {val: 'NO CONTESTA, VOLVER A LLAMAR', text: 'NO CONTESTA, VOLVER A LLAMAR'}, {val: 'PENDIENTE A RETORNO', text: 'PENDIENTE A RETORNO'}, {val: 'COMPLETADO', text: 'COMPLETADO'} diff --git a/save_pedido_contraentrega.php b/save_pedido_contraentrega.php index e2a5d614..f778b53d 100644 --- a/save_pedido_contraentrega.php +++ b/save_pedido_contraentrega.php @@ -1,4 +1,8 @@ $fecha_entrega, ]; - if ($id) { - // UPDATE: Explicit and safe query - $user_role = $_SESSION['user_role'] ?? ''; + try { + if ($id) { + // UPDATE: Explicit and safe query + $user_role = $_SESSION['user_role'] ?? ''; - $sql_parts = [ - "dni_cliente = :dni_cliente", - "nombre_completo = :nombre_completo", - "celular = :celular", - "agencia = :agencia", - "sede_envio = :sede_envio", - "direccion_exacta = :direccion_exacta", - "referencia_domicilio = :referencia_domicilio", - "coordenadas = :coordenadas", - "codigo_rastreo = :codigo_rastreo", - "codigo_tracking = :codigo_tracking", - "producto = :producto", - "cantidad = :cantidad", - "monto_total = :monto_total", - "monto_adelantado = :monto_adelantado", - "numero_operacion = :numero_operacion", - "banco = :banco", - "monto_debe = :monto_debe", - "notas = :notas", - "seguimiento = :seguimiento", - "fecha_entrega = :fecha_entrega", - "estado = :estado", - ]; - $params['estado'] = $_POST['estado'] ?? 'RUTA_CONTRAENTREGA'; + $sql_parts = [ + "dni_cliente = :dni_cliente", + "nombre_completo = :nombre_completo", + "celular = :celular", + "agencia = :agencia", + "sede_envio = :sede_envio", + "direccion_exacta = :direccion_exacta", + "referencia_domicilio = :referencia_domicilio", + "coordenadas = :coordenadas", + "codigo_rastreo = :codigo_rastreo", + "codigo_tracking = :codigo_tracking", + "producto = :producto", + "cantidad = :cantidad", + "monto_total = :monto_total", + "monto_adelantado = :monto_adelantado", + "numero_operacion = :numero_operacion", + "banco = :banco", + "monto_debe = :monto_debe", + "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'])) { - $sql_parts[] = "asesor_id = :asesor_id"; - $params['asesor_id'] = $_POST['asesor_id']; + // Conditionally add asesor_id + if ($user_role === 'Administrador' && !empty($_POST['asesor_id'])) { + $sql_parts[] = "asesor_id = :asesor_id"; + $params['asesor_id'] = $_POST['asesor_id']; + } + + $sql = "UPDATE pedidos SET " . implode(", ", $sql_parts) . " WHERE id = :id"; + + $params['id'] = $id; + $stmt = $pdo->prepare($sql); + $stmt->execute($params); + } else { + // INSERT: The advisor is the user creating the order. + $params['asesor_id'] = $_SESSION['user_id']; + $params['estado'] = $_POST['estado'] ?? 'RUTA_CONTRAENTREGA'; + + $columns_sql = "dni_cliente, nombre_completo, celular, agencia, sede_envio, direccion_exacta, referencia_domicilio, coordenadas, codigo_rastreo, codigo_tracking, producto, cantidad, monto_total, monto_adelantado, numero_operacion, banco, monto_debe, asesor_id, notas, estado, seguimiento, fecha_entrega"; + $values_sql = ":dni_cliente, :nombre_completo, :celular, :agencia, :sede_envio, :direccion_exacta, :referencia_domicilio, :coordenadas, :codigo_rastreo, :codigo_tracking, :producto, :cantidad, :monto_total, :monto_adelantado, :numero_operacion, :banco, :monto_debe, :asesor_id, :notas, :estado, :seguimiento, :fecha_entrega"; + + $sql = "INSERT INTO pedidos ($columns_sql) VALUES ($values_sql)"; + $stmt = $pdo->prepare($sql); + $stmt->execute($params); } - - $sql = "UPDATE pedidos SET " . implode(", ", $sql_parts) . " WHERE id = :id"; - - $params['id'] = $id; - $stmt = $pdo->prepare($sql); - $stmt->execute($params); - } else { - // INSERT: The advisor is the user creating the order. - $params['asesor_id'] = $_SESSION['user_id']; - $params['estado'] = $_POST['estado'] ?? 'RUTA_CONTRAENTREGA'; - - $columns_sql = "dni_cliente, nombre_completo, celular, agencia, sede_envio, direccion_exacta, referencia_domicilio, coordenadas, codigo_rastreo, codigo_tracking, producto, cantidad, monto_total, monto_adelantado, numero_operacion, banco, monto_debe, asesor_id, notas, estado, seguimiento, fecha_entrega"; - $values_sql = ":dni_cliente, :nombre_completo, :celular, :agencia, :sede_envio, :direccion_exacta, :referencia_domicilio, :coordenadas, :codigo_rastreo, :codigo_tracking, :producto, :cantidad, :monto_total, :monto_adelantado, :numero_operacion, :banco, :monto_debe, :asesor_id, :notas, :estado, :seguimiento, :fecha_entrega"; - - $sql = "INSERT INTO pedidos ($columns_sql) VALUES ($values_sql)"; - $stmt = $pdo->prepare($sql); - $stmt->execute($params); + } catch (PDOException $e) { + die("Error en la base de datos: " . $e->getMessage()); } if (isset($_POST['id']) && !empty($_POST['id'])) {