Autosave: 20260512-114702

This commit is contained in:
Flatlogic Bot 2026-05-12 11:47:02 +00:00
parent 667d0238fa
commit 5c9514cbb3
3 changed files with 67 additions and 58 deletions

View File

@ -76,6 +76,13 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['sync_shalom'])) {
// --- Carga de Datos para la Vista ---
// Cargar configuraciones generales
$stmt_config = $conn->query("SELECT clave, valor FROM configuracion");
$configs = $stmt_config->fetchAll(PDO::FETCH_KEY_PAIR);
$banner_text = $configs['banner_text'] ?? '';
$whatsapp_template_notificacion = $configs['whatsapp_template_notificacion'] ?? ($configs['whatsapp_template_contraentrega'] ?? '');
// Datos para la gestión de columnas
$stmt_manage_columns = $conn->query("SELECT * FROM kanban_columns ORDER BY orden ASC");
$management_columns = $stmt_manage_columns->fetchAll(PDO::FETCH_ASSOC);
@ -247,26 +254,45 @@ if (isset($_SESSION['error_message'])) {
</div>
</div>
<!-- Mensaje de WhatsApp para Ruta Contraentrega -->
<div class="card mt-4">
<!-- Plantilla de Notificación de WhatsApp -->
<div class="card mt-4 border-primary">
<div class="card-header bg-primary text-white">
<h5 class="card-title mb-0"><i class="fab fa-whatsapp"></i> PLANTILLA DE NOTIFICACIÓN</h5>
</div>
<div class="card-body">
<h5 class="card-title">Mensaje para Ruta Contraentrega</h5>
<p class="card-text">
Edita la plantilla para el mensaje de WhatsApp que se envía desde la sección de "Ruta Contraentrega".
<br>
Puedes usar las siguientes variables:
<ul>
<li><code>{cliente}</code>: Nombre del cliente.</li>
<li><code>{monto}</code>: Monto a pagar (incluye el símbolo "S/").</li>
<li><code>{direccion}</code>: Dirección de entrega.</li>
</ul>
<p class="card-text text-muted">
Este es el mensaje que se enviará a los clientes para notificarles sobre su pedido (disponible en <strong>Pedidos en Tránsito</strong> y <strong>Ruta Contraentrega</strong>).
Puedes personalizarlo usando las siguientes etiquetas:
</p>
<form action="save_whatsapp_template.php" method="post">
<input type="hidden" name="template_name" value="whatsapp_template_contraentrega">
<div class="form-group">
<textarea class="form-control" id="whatsapp_template_contraentrega" name="template_content" rows="4"><?php echo htmlspecialchars($whatsapp_template_contraentrega); ?></textarea>
<div class="alert alert-light border">
<div class="row">
<div class="col-md-6">
<ul class="mb-0">
<li><code>{NOMBRE_CLIENTE}</code>: Nombre del cliente.</li>
<li><code>{PRODUCTO}</code>: Nombre del producto.</li>
<li><code>{SEDE_ENVIO}</code>: Agencia de destino.</li>
</ul>
</div>
<div class="col-md-6">
<ul class="mb-0">
<li><code>{MONTO_TOTAL}</code>: Precio total.</li>
<li><code>{ADELANTO}</code>: Pago realizado.</li>
<li><code>{SALDO_PENDIENTE}</code>: Lo que falta pagar.</li>
</ul>
</div>
</div>
</div>
<form action="save_whatsapp_template.php" method="post">
<input type="hidden" name="template_name" value="whatsapp_template_notificacion">
<div class="form-group">
<label for="whatsapp_template_notificacion" class="form-label font-weight-bold">Contenido del Mensaje:</label>
<textarea class="form-control" id="whatsapp_template_notificacion" name="template_content" rows="10" placeholder="Escribe aquí tu mensaje..."><?php echo htmlspecialchars($whatsapp_template_notificacion); ?></textarea>
</div>
<div class="mt-3">
<button type="submit" class="btn btn-primary">
<i class="fas fa-save"></i> Guardar Plantilla
</button>
</div>
<button type="submit" class="btn btn-primary mt-2">Guardar Plantilla</button>
</form>
</div>
</div>

View File

@ -90,6 +90,10 @@ $months = [
7 => 'Julio', 8 => 'Agosto', 9 => 'Septiembre', 10 => 'Octubre', 11 => 'Noviembre', 12 => 'Diciembre'
];
// Cargar plantilla de WhatsApp desde la configuración
$stmt_config = $pdo->query("SELECT valor FROM configuracion WHERE clave = 'whatsapp_template_notificacion'");
$whatsapp_template_db = $stmt_config->fetchColumn();
?>
<?php
$pageTitle = "Pedidos en Tránsito";
@ -212,32 +216,16 @@ include 'layout_header.php';
$monto_debe = (float)($pedido['monto_debe'] ?? 0);
$adelanto = $monto_total - $monto_debe;
$template = "Estimado(a) {NOMBRE_CLIENTE} 👋
"
. "Le informamos que su pedido de {PRODUCTO} ya se encuentra disponible en su ciudad 📦
"
. "📍 Lugar de recojo: Shalom {SEDE_ENVIO}
"
. "💰 Detalle de pago:
"
. "• Monto total del pedido: S/ {MONTO_TOTAL}
"
. "• Adelanto realizado: S/ {ADELANTO} ✅
"
. "• Saldo pendiente: S/ {SALDO_PENDIENTE}
"
. "Para continuar, le solicitamos enviar la captura de su pago restante por este medio 📄
"
. "Una vez confirmado su pago ✅, le enviaremos su clave de recojo 🔐, para que pueda retirar su pedido en la agencia sin inconvenientes 📦
"
. "Quedamos atentos a su confirmación.
"
$template = $whatsapp_template_db ?: "Estimado(a) {NOMBRE_CLIENTE} 👋\n"
. "Le informamos que su pedido de {PRODUCTO} ya se encuentra disponible en su ciudad 📦\n\n"
. "📍 Lugar de recojo: Shalom {SEDE_ENVIO}\n\n"
. "💰 Detalle de pago:\n\n"
. "• Monto total del pedido: S/ {MONTO_TOTAL}\n"
. "• Adelanto realizado: S/ {ADELANTO} ✅\n"
. "• Saldo pendiente: S/ {SALDO_PENDIENTE}\n\n"
. "Para continuar, le solicitamos enviar la captura de su pago restante por este medio 📄\n\n"
. "Una vez confirmado su pago ✅, le enviaremos su clave de recojo 🔐, para que pueda retirar su pedido en la agencia sin inconvenientes 📦\n\n"
. "Quedamos atentos a su confirmación.\n"
. "Área de Atención al Cliente";
$replacements = [

View File

@ -5,22 +5,17 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$template_name = $_POST['template_name'] ?? '';
$template_content = $_POST['template_content'] ?? '';
if (!empty($template_name)) { // Allow empty content to reset
if (!empty($template_name)) {
try {
// Check if the config exists
$stmt = db()->prepare("SELECT id FROM configuracion WHERE nombre_config = ?");
$stmt->execute([$template_name]);
$exists = $stmt->fetchColumn();
if ($exists) {
// Update
$update_stmt = db()->prepare("UPDATE configuracion SET valor_config = ? WHERE nombre_config = ?");
$update_stmt->execute([$template_content, $template_name]);
} else {
// Insert
$insert_stmt = db()->prepare("INSERT INTO configuracion (nombre_config, valor_config) VALUES (?, ?)");
$insert_stmt->execute([$template_name, $template_content]);
}
$pdo = db();
// Use INSERT ... ON DUPLICATE KEY UPDATE to either create or update the template
$sql = "INSERT INTO configuracion (clave, valor) VALUES (:clave, :valor)
ON DUPLICATE KEY UPDATE valor = :valor";
$stmt = $pdo->prepare($sql);
$stmt->execute([
':clave' => $template_name,
':valor' => $template_content
]);
// Redirect back to configuration page with a success message
header('Location: configuracion.php?success=1');