From e2ac02cc7a308474122ffdfdb4f870e2182fe43d Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Thu, 19 Feb 2026 07:23:19 +0000 Subject: [PATCH] Autosave: 20260219-072319 --- assets/pasted-20260219-071453-ee93359e.png | Bin 0 -> 29273 bytes index.php | 229 ++++++++++++++------- post_debug.log | 3 + 3 files changed, 161 insertions(+), 71 deletions(-) create mode 100644 assets/pasted-20260219-071453-ee93359e.png diff --git a/assets/pasted-20260219-071453-ee93359e.png b/assets/pasted-20260219-071453-ee93359e.png new file mode 100644 index 0000000000000000000000000000000000000000..3a9b7fe285b39eb7eb2a4c9089e81cfa0da6df07 GIT binary patch literal 29273 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 literal 0 HcmV?d00001 diff --git a/index.php b/index.php index a198369..25eb6bc 100644 --- a/index.php +++ b/index.php @@ -7096,73 +7096,96 @@ $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Accounting System';
-
- Opening Balance: - OMR -
prepare("SELECT p.payment_method, SUM(p.amount) as total FROM pos_payments p JOIN pos_transactions t ON p.transaction_id = t.id WHERE t.register_session_id = ? AND t.status = 'completed' GROUP BY p.payment_method"); $breakdown->execute([$s['id']]); $methods = $breakdown->fetchAll(); - $total_sales = 0; - foreach ($methods as $m): $total_sales += $m['total']; ?> + + $cash_sales = 0; + $card_sales = 0; + $credit_sales = 0; + $bank_transfer_sales = 0; + + foreach ($methods as $m) { + $method = strtolower($m['payment_method']); + if ($method === 'cash') $cash_sales = $m['total']; + elseif ($method === 'card' || strpos($method, 'card') !== false) $card_sales = $m['total']; + elseif ($method === 'credit') $credit_sales = $m['total']; + elseif (strpos($method, 'transfer') !== false || strpos($method, 'bank') !== false) $bank_transfer_sales = $m['total']; + else $cash_sales += $m['total']; + } + $total_sales = $cash_sales + $card_sales + $credit_sales + $bank_transfer_sales; + $expected_balance = (float)$s['opening_balance'] + $cash_sales; // Usually balance in hand is opening + cash sales + $total_all = (float)$s['opening_balance'] + $total_sales; + ?> +
- Sales (): - OMR + Opening Balance: + OMR
- -
- Total Sales: - OMR +
+ Cash Sales: + OMR
-
-
- Expected Cash in Hand: - OMR +
+ Credit Card Sales: + OMR
-
- Actual Cash in Hand: - OMR +
+ Credit: + OMR
-
- Difference: - OMR +
+ Bank Transfer: + OMR +
+ +
+ Balance (Total): + OMR +
+ +
+
Transaction Details
+
+ + + + + + + + + + + + prepare("SELECT t.*, c.name as customer_name, GROUP_CONCAT(p.payment_method SEPARATOR ', ') as methods FROM pos_transactions t LEFT JOIN pos_payments p ON t.id = p.transaction_id LEFT JOIN customers c ON t.customer_id = c.id WHERE t.register_session_id = ? AND t.status = 'completed' GROUP BY t.id ORDER BY t.created_at DESC"); + $txs_stmt->execute([$s['id']]); + $txs = $txs_stmt->fetchAll(); + foreach ($txs as $tx): + ?> + + + + + + + + + + + +
TimeOrder #CustomerMethodAmount
No transactions
+

-
Detailed Transactions by Method
- prepare("SELECT t.transaction_no, t.created_at, p.amount FROM pos_payments p JOIN pos_transactions t ON p.transaction_id = t.id WHERE t.register_session_id = ? AND t.status = 'completed' AND p.payment_method = ?"); - $details->execute([$s['id'], $m['payment_method']]); - $trans = $details->fetchAll(); - ?> -
-
- - OMR -
- - - - - - - - - - - - - - - - - -
TX #TimeAmount
OMR
+
+
Expected Cash: OMR
+
Actual Cash: OMR
-
@@ -7238,34 +7261,94 @@ $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Accounting System'; $curBreakdown = db()->prepare("SELECT p.payment_method, SUM(p.amount) as total FROM pos_payments p JOIN pos_transactions t ON p.transaction_id = t.id WHERE t.register_session_id = ? AND t.status = 'completed' GROUP BY p.payment_method"); $curBreakdown->execute([$session['id']]); $curMethods = $curBreakdown->fetchAll(); - $curCashSales = 0; - foreach($curMethods as $cm) if(strtolower($cm['payment_method']) === 'cash') $curCashSales = (float)$cm['total']; + + $cash_sales = 0; + $card_sales = 0; + $credit_sales = 0; + $bank_transfer_sales = 0; + + foreach ($curMethods as $m) { + $method = strtolower($m['payment_method']); + if ($method === 'cash') $cash_sales = $m['total']; + elseif ($method === 'card' || strpos($method, 'card') !== false) $card_sales = $m['total']; + elseif ($method === 'credit') $credit_sales = $m['total']; + elseif (strpos($method, 'transfer') !== false || strpos($method, 'bank') !== false) $bank_transfer_sales = $m['total']; + else $cash_sales += $m['total']; + } + $total_sales = $cash_sales + $card_sales + $credit_sales + $bank_transfer_sales; + $expected_cash = (float)$session['opening_balance'] + $cash_sales; + $total_all = (float)$session['opening_balance'] + $total_sales; ?>
Session Summary
- Opening Cash: + Opening Balance: OMR
Cash Sales: - OMR + OMR +
+
+ Credit Card Sales: + OMR +
+
+ Credit: + OMR +
+
+ Bank Transfer: + OMR

-
- Expected Cash in Hand: - OMR +
+ Balance (Total): + OMR
- - -
- Total: - OMR +
+ Expected Cash: + OMR
-
+ +
+
Transaction Details
+
+ + + + + + + + + + + + prepare("SELECT t.*, c.name as customer_name, GROUP_CONCAT(p.payment_method SEPARATOR ', ') as methods FROM pos_transactions t LEFT JOIN pos_payments p ON t.id = p.transaction_id LEFT JOIN customers c ON t.customer_id = c.id WHERE t.register_session_id = ? AND t.status = 'completed' GROUP BY t.id ORDER BY t.created_at DESC"); + $txs_stmt->execute([$session['id']]); + $txs = $txs_stmt->fetchAll(); + foreach ($txs as $tx): + ?> + + + + + + + + + + + +
TimeOrder #CustomerMethodAmount
No transactions
+
+
+
@@ -9887,11 +9970,15 @@ document.addEventListener('DOMContentLoaded', function() { Card
-
- - Credit -
-
+
+ + Credit +
+
+ + Transfer +
+
diff --git a/post_debug.log b/post_debug.log index 257cce7..2e823a8 100644 --- a/post_debug.log +++ b/post_debug.log @@ -57,3 +57,6 @@ 2026-02-19 06:50:40 - POST: {"name_en":"Tissue","name_ar":"\u0645\u062d\u0627\u0631\u0645 \u0648\u0631\u0642\u064a\u0629","category_id":"2","unit_id":"2","supplier_id":"6","sku":"5673086966938977","sale_price":"0.25","purchase_price":"0.2","stock_quantity":"0.000","min_stock_level":"0.000","vat_rate":"5","expiry_date":"","promotion_start":"","promotion_end":"","promotion_percent":"0.00","add_item":""} 2026-02-19 06:53:36 - POST: {"action":"save_pos_transaction","customer_id":"","payments":"[{\"method\":\"cash\",\"amount\":0.978}]","total_amount":"0.9775","discount_code_id":"","discount_amount":"0","loyalty_redeemed":"0","items":"[{\"id\":1,\"qty\":2,\"price\":0.3825},{\"id\":2,\"qty\":1,\"price\":0.2125}]"} 2026-02-19 07:01:43 - POST: {"name_en":"Tissue","name_ar":"\u0645\u062d\u0627\u0631\u0645 \u0648\u0631\u0642\u064a\u0629","category_id":"2","unit_id":"2","supplier_id":"6","sku":"760115926272","sale_price":"0.25","purchase_price":"0.2","stock_quantity":"5","min_stock_level":"0.000","vat_rate":"5","expiry_date":"","promotion_start":"","promotion_end":"","promotion_percent":"0.00","add_item":""} +2026-02-19 07:02:59 - POST: {"name_en":"Tissue","name_ar":"\u0645\u062d\u0627\u0631\u0645 \u0648\u0631\u0642\u064a\u0629","category_id":"2","unit_id":"2","supplier_id":"6","sku":"760115926272","sale_price":"0.25","purchase_price":"0.2","stock_quantity":"5","min_stock_level":"0.000","vat_rate":"5","expiry_date":"","promotion_start":"","promotion_end":"","promotion_percent":"0.00","add_item":""} +2026-02-19 07:12:25 - POST: {"action":"save_pos_transaction","customer_id":"","payments":"[{\"method\":\"cash\",\"amount\":0.883}]","total_amount":"0.8825000000000001","discount_code_id":"","discount_amount":"0","loyalty_redeemed":"0","items":"[{\"id\":1,\"qty\":1,\"price\":0.3825},{\"id\":3,\"qty\":2,\"price\":0.25}]"} +2026-02-19 07:12:39 - POST: {"close_register":"1","session_id":"3","cash_in_hand":"5","notes":""}