From 5deb44b9f8f0af8931748b1ae6cc012e35b7bf73 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Sat, 28 Feb 2026 13:15:53 +0000 Subject: [PATCH] improving printing --- api/order.php | 5 ++++- assets/js/main.js | 20 ++++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/api/order.php b/api/order.php index 5f2bea6..502ea71 100644 --- a/api/order.php +++ b/api/order.php @@ -359,6 +359,8 @@ try { $pdo->commit(); // --- Post-Transaction Actions (WhatsApp) --- + // DISABLED TEMPORARILY AS PER USER REQUEST + /* if ($customer_id && $customer_phone) { try { $final_points = $current_points - $points_deducted + ($loyalty_enabled ? $points_awarded : 0); @@ -421,6 +423,7 @@ You've earned *{points_earned} points* with this order. error_log("Wablas Exception: " . $w->getMessage()); } } + */ echo json_encode(['success' => true, 'order_id' => $order_id]); @@ -428,4 +431,4 @@ You've earned *{points_earned} points* with this order. if ($pdo->inTransaction()) $pdo->rollBack(); error_log("Order Error: " . $e->getMessage()); echo json_encode(['success' => false, 'error' => $e->getMessage()]); -} \ No newline at end of file +} diff --git a/assets/js/main.js b/assets/js/main.js index 1cc080f..cc7eb83 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -732,11 +732,23 @@ document.addEventListener('DOMContentLoaded', () => { if (data.success) { receiptData.orderId = data.order_id; - // Show receipt for both Quick Pay and Place Order - printThermalReceipt(receiptData); + // --- PRINTING LOGIC --- + const cashierPrinterIp = CURRENT_OUTLET.cashier_printer_ip; + const isLocalCashierIp = cashierPrinterIp && /^(127\.|10\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)/.test(cashierPrinterIp); + + // Show browser receipt ONLY IF: + // 1. No cashier printer is configured + // 2. OR the configured cashier printer is a local IP (which we can't reach from cloud) + // This prevents duplicate printing when a valid network printer is used. + if (!cashierPrinterIp || isLocalCashierIp) { + printThermalReceipt(receiptData); + } else { + // Only try network printing if it's NOT a local IP + // (prevents useless 1s timeout for cashier print if we already browser-printed) + triggerNetworkPrint(data.order_id, 'cashier'); + } - // Trigger network printing - triggerNetworkPrint(data.order_id, 'cashier'); + // Kitchen is usually always a network printer, so we always try it triggerNetworkPrint(data.order_id, 'kitchen'); showToast(`${_t('order_placed')} #${data.order_id}`, 'success');