Autosave: 20260523-170233
This commit is contained in:
parent
491b21a0f8
commit
709ff2f0d0
BIN
assets/uploads/vouchers/6a11abf1d82a5-066.png
Normal file
BIN
assets/uploads/vouchers/6a11abf1d82a5-066.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 329 KiB |
BIN
assets/uploads/vouchers/6a11acdda4cb9-090.png
Normal file
BIN
assets/uploads/vouchers/6a11acdda4cb9-090.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 499 KiB |
BIN
assets/uploads/vouchers/6a11adff3ab3f-859.png
Normal file
BIN
assets/uploads/vouchers/6a11adff3ab3f-859.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 263 KiB |
BIN
assets/uploads/vouchers/6a11b6cc6e69e-Screenshot_363.png
Normal file
BIN
assets/uploads/vouchers/6a11b6cc6e69e-Screenshot_363.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 234 KiB |
BIN
assets/uploads/vouchers/6a11ca92830ee-513.png
Normal file
BIN
assets/uploads/vouchers/6a11ca92830ee-513.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 375 KiB |
@ -240,7 +240,7 @@ $(document).ready(function() {
|
||||
"language": {
|
||||
"url": "//cdn.datatables.net/plug-ins/1.10.25/i18n/Spanish.json"
|
||||
},
|
||||
"order": [[ <?php echo ($user_role !== 'Asesor') ? 16 : 15; ?>, "desc" ]],
|
||||
"order": [[ 0, "desc" ]],
|
||||
"paging": false,
|
||||
"lengthChange": false,
|
||||
"info": false
|
||||
|
||||
@ -147,7 +147,7 @@ include 'layout_header.php';
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label for="dni_cliente" class="form-label">DNI</label>
|
||||
<input type="text" class="form-control" id="dni_cliente" name="dni" value="<?php echo htmlspecialchars($pedido['dni_cliente'] ?? ''); ?>" required>
|
||||
<input type="text" class="form-control" id="dni_cliente" name="dni" value="<?php echo htmlspecialchars($pedido['dni_cliente'] ?? ''); ?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -345,11 +345,7 @@ $(document).ready(function() {
|
||||
"language": {
|
||||
"url": "//cdn.datatables.net/plug-ins/1.10.25/i18n/Spanish.json"
|
||||
},
|
||||
"order": [[ <?php
|
||||
$orderCol = ($user_role !== 'Asesor' ? 16 : 15);
|
||||
if ($user_role === 'Logistica') $orderCol -= 2;
|
||||
echo $orderCol;
|
||||
?>, "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'}
|
||||
|
||||
@ -1,4 +1,8 @@
|
||||
<?php
|
||||
ob_start();
|
||||
ini_set('display_errors', 1);
|
||||
ini_set('display_startup_errors', 1);
|
||||
error_reporting(E_ALL);
|
||||
session_start();
|
||||
if (!isset($_SESSION['user_id'])) {
|
||||
header('Location: login.php');
|
||||
@ -12,18 +16,18 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
|
||||
$id = $_POST['id'] ?? null;
|
||||
|
||||
$dni = trim($_POST['dni']);
|
||||
$nombre_completo = trim($_POST['nombre_completo']);
|
||||
$celular = trim($_POST['celular']);
|
||||
$dni = trim($_POST['dni'] ?? '');
|
||||
$nombre_completo = trim($_POST['nombre_completo'] ?? '');
|
||||
$celular = trim($_POST['celular'] ?? '');
|
||||
$agencia = trim($_POST['agencia'] ?? 'CONTRAENTREGA');
|
||||
$sede_envio = trim($_POST['sede_envio']);
|
||||
$sede_envio = trim($_POST['sede_envio'] ?? '');
|
||||
$codigo_rastreo = trim($_POST['codigo_rastreo'] ?? '');
|
||||
$codigo_tracking = trim($_POST['codigo_tracking'] ?? '');
|
||||
$direccion_exacta = trim($_POST['direccion_exacta'] ?? '');
|
||||
$referencia_domicilio = trim($_POST['referencia_domicilio'] ?? '');
|
||||
$coordenadas = trim($_POST['coordenadas'] ?? '');
|
||||
$seguimiento = trim($_POST['seguimiento'] ?? '');
|
||||
$fecha_entrega = trim($_POST['fecha_entrega'] ?? null);
|
||||
$fecha_entrega = !empty($_POST['fecha_entrega']) ? trim($_POST['fecha_entrega']) : null;
|
||||
|
||||
// --- Manejo de multiples productos ---
|
||||
$productos_post = $_POST['productos'] ?? [];
|
||||
@ -46,17 +50,20 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$notas_adicionales = "Detalle de productos: " . implode(', ', $productos_detalle);
|
||||
// --- Fin del manejo de multiples productos ---
|
||||
|
||||
$monto_total = filter_var($_POST['monto_total'], FILTER_VALIDATE_FLOAT);
|
||||
$monto_adelantado = filter_var($_POST['monto_adelantado'], FILTER_VALIDATE_FLOAT);
|
||||
$numero_operacion = trim($_POST['numero_operacion']);
|
||||
$monto_total = filter_var($_POST['monto_total'] ?? 0, FILTER_VALIDATE_FLOAT);
|
||||
$monto_adelantado = filter_var($_POST['monto_adelantado'] ?? 0, FILTER_VALIDATE_FLOAT);
|
||||
if ($monto_total === false) $monto_total = 0.0;
|
||||
if ($monto_adelantado === false) $monto_adelantado = 0.0;
|
||||
|
||||
$numero_operacion = trim($_POST['numero_operacion'] ?? '');
|
||||
$banco = trim($_POST['banco'] ?? '');
|
||||
$notas = trim($_POST['notas']);
|
||||
$notas = trim($_POST['notas'] ?? '');
|
||||
|
||||
if (!empty($productos_detalle)) {
|
||||
$notas .= "\n\n" . $notas_adicionales;
|
||||
}
|
||||
|
||||
if (empty($dni) || empty($nombre_completo) || empty($celular) || empty($sede_envio) || empty($producto) || $cantidad === false || $monto_total === false || empty($coordenadas)) {
|
||||
if (empty($nombre_completo) || empty($celular) || empty($sede_envio) || empty($producto) || $cantidad === false || $monto_total === false || empty($coordenadas)) {
|
||||
$error_message = urlencode('Por favor, complete todos los campos obligatorios, incluyendo las coordenadas.');
|
||||
$id_param = $id ? '&id=' . $id : '';
|
||||
header('Location: pedidos_contraentrega.php?error=' . $error_message . $id_param);
|
||||
@ -110,57 +117,61 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
'fecha_entrega' => $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'])) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user