diff --git a/edit_sale.php b/edit_sale.php index 60a3a6e..2458591 100644 --- a/edit_sale.php +++ b/edit_sale.php @@ -172,7 +172,20 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } if ($error === '') { - set_flash('success', tr('تم تحديث الفاتورة بنجاح.', 'Invoice updated successfully.')); + $flashType = 'success'; + $flashMessage = tr('تم تحديث الفاتورة بنجاح.', 'Invoice updated successfully.'); + + if ($isEidSale && wablas_is_configured()) { + $wablasResult = wablas_notify_sale_invoice($editSaleId); + if (!empty($wablasResult['success'])) { + $flashMessage = tr('تم تحديث الفاتورة وإعادة إرسالها عبر واتساب بنجاح.', 'Invoice updated and resent via WhatsApp successfully.'); + } else { + $flashType = 'warning'; + $flashMessage = tr('تم تحديث الفاتورة، لكن تعذر إعادة إرسالها عبر واتساب. تحقق من رقم واتساب العميل أو إعدادات واتساب.', 'Invoice updated, but resending via WhatsApp failed. Check the customer WhatsApp number or WhatsApp settings.'); + } + } + + set_flash($flashType, $flashMessage); redirect_to('sale.php', ['id' => $editSaleId]); } } diff --git a/eid_orders.php b/eid_orders.php index 4d7029b..5eb8bac 100644 --- a/eid_orders.php +++ b/eid_orders.php @@ -47,7 +47,7 @@ $deliveryStatus = trim((string) ($_GET['delivery_status'] ?? '')); $dateFrom = trim((string) ($_GET['date_from'] ?? '')); $dateTo = trim((string) ($_GET['date_to'] ?? '')); $sort = trim((string) ($_GET['sort'] ?? 'delivery_date')); -$dir = strtolower(trim((string) ($_GET['dir'] ?? 'asc'))); +$dir = strtolower(trim((string) ($_GET['dir'] ?? 'desc'))); $sortMap = [ 'receipt_no' => 'receipt_no', 'customer' => 'customer_name', @@ -154,8 +154,8 @@ try { $primarySort = $sortMap[$sort] . ' ' . strtoupper($dir); $secondarySort = $sort === 'delivery_date' - ? ', sale_date DESC' - : ', COALESCE(delivery_date, DATE(sale_date)) ASC, sale_date DESC'; + ? ', sale_date DESC, id DESC' + : ', COALESCE(delivery_date, DATE(sale_date)) DESC, sale_date DESC, id DESC'; $sql = "SELECT sales_orders.*, ( SELECT COUNT(*) @@ -176,6 +176,7 @@ try { foreach ($orders as &$order) { $order['items'] = json_decode((string) ($order['items_json'] ?? '[]'), true) ?: []; + $order['payment_summary'] = sale_payment_summary($order); $itemPreview = []; foreach ($order['items'] as $item) { @@ -406,6 +407,8 @@ require __DIR__ . '/includes/header.php'; + + @@ -467,15 +470,17 @@ require __DIR__ . '/includes/header.php'; + + - - + +
- +
diff --git a/eid_sale.php b/eid_sale.php index eca044c..959a690 100644 --- a/eid_sale.php +++ b/eid_sale.php @@ -7,4 +7,6 @@ $activeNav = "eid_sale"; $backUrl = url_for('eid_orders.php'); $backLabel = tr('عودة لطلبات العيد', 'Back to Eid Orders'); $saveLabel = tr('حفظ طلب العيد', 'Save Eid Order'); +$saveOnlyLabel = tr('حفظ بدون طباعة', 'Save without print'); +$savePrintLabel = tr('حفظ مع الطباعة', 'Save with print'); require_once __DIR__ . '/includes/sale_form.php'; diff --git a/includes/sale_form.php b/includes/sale_form.php index 95830b6..15a1e3b 100644 --- a/includes/sale_form.php +++ b/includes/sale_form.php @@ -170,6 +170,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } $redirectParams = ['id' => $saleId, 'print' => 1]; + if ($isEidOrder) { + redirect_to('print_receipt.php', $redirectParams); + } redirect_to('sale.php', $redirectParams); } } diff --git a/print_receipt.php b/print_receipt.php index d0c8944..de8bac4 100644 --- a/print_receipt.php +++ b/print_receipt.php @@ -17,6 +17,9 @@ if (!$sale) { die("Sale not found."); } $paymentSummary = sale_payment_summary($sale); +$isEidSale = (($sale['order_type'] ?? 'standard') === 'eid'); +$backHref = $isEidSale ? url_for('eid_orders.php') : url_for('sales.php'); +$backLabel = $isEidSale ? tr('رجوع لطلبات العيد', 'Back to Eid Orders') : tr('رجوع للمبيعات', 'Back to Sales'); // Receipt Configuration $storeName = current_lang() === 'ar' ? get_setting('company_name_ar', 'حلوى الريامي') : get_setting('company_name_en', 'Al Riyami Sweets'); @@ -292,7 +295,7 @@ $registerNo = 'REG-01';