Autosave: 20260501-140940
This commit is contained in:
parent
7377170520
commit
5f5205783f
@ -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]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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';
|
||||
<i class="bi <?= h($sortIcon('total_amount')) ?>"></i>
|
||||
</a>
|
||||
</th>
|
||||
<th class="text-end"><?= h(tr('المدفوع', 'Paid')) ?></th>
|
||||
<th class="text-end"><?= h(tr('المتبقي', 'Remaining')) ?></th>
|
||||
<th><?= h(tr('الدفع', 'Payment')) ?></th>
|
||||
<th class="text-end"><?= h(tr('إجراءات', 'Actions')) ?></th>
|
||||
</tr>
|
||||
@ -467,15 +470,17 @@ require __DIR__ . '/includes/header.php';
|
||||
</span>
|
||||
</td>
|
||||
<td class="text-end fw-semibold"><?= h(number_format((float) ($order['total_amount'] ?? 0), 3)) ?></td>
|
||||
<td class="text-end text-success fw-semibold"><?= h(number_format((float) (($order['payment_summary']['paid_amount'] ?? 0)), 3)) ?></td>
|
||||
<td class="text-end fw-semibold <?= (($order['payment_summary']['due_amount'] ?? 0) > 0.0005) ? 'text-danger' : 'text-success' ?>"><?= h(number_format((float) (($order['payment_summary']['due_amount'] ?? 0)), 3)) ?></td>
|
||||
<td>
|
||||
<span class="badge <?= h(payment_status_badge_class((string) ($order['payment_status'] ?? 'paid'))) ?> px-2 py-1">
|
||||
<?= h(payment_status_label((string) ($order['payment_status'] ?? 'paid'))) ?>
|
||||
<span class="badge <?= h(payment_status_badge_class((string) (($order['payment_summary']['payment_status'] ?? ($order['payment_status'] ?? 'paid'))))) ?> px-2 py-1">
|
||||
<?= h(payment_status_label((string) (($order['payment_summary']['payment_status'] ?? ($order['payment_status'] ?? 'paid'))))) ?>
|
||||
</span>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<div class="d-flex justify-content-end gap-2">
|
||||
<?php if (($order['payment_status'] ?? 'unpaid') !== 'paid'): ?>
|
||||
<?php if ((($order['payment_summary']['payment_status'] ?? ($order['payment_status'] ?? 'unpaid'))) !== 'paid'): ?>
|
||||
<form method="post" action="" class="d-inline" onsubmit="return confirm('<?= h(tr('هل أنت متأكد من تغيير حالة الدفع إلى مدفوع؟', 'Are you sure you want to mark as paid?')) ?>');">
|
||||
<input type="hidden" name="action" value="mark_as_paid">
|
||||
<input type="hidden" name="id" value="<?= h($order['id']) ?>">
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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';
|
||||
|
||||
<!-- Print Actions -->
|
||||
<div class="print-actions no-print">
|
||||
<a href="pos.php" class="btn btn-secondary"><?= h(tr('رجوع لـ POS', 'Back to POS')) ?></a>
|
||||
<a href="<?= h($backHref) ?>" class="btn btn-secondary"><?= h($backLabel) ?></a>
|
||||
<button onclick="window.print()" class="btn"><?= h(tr('طباعة الآن', 'Print Now')) ?></button>
|
||||
</div>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user