From 0c1d656a8ac3f66bbcceb921693a677fb121bee5 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Wed, 18 Mar 2026 02:24:26 +0000 Subject: [PATCH] Edit index.php via Editor --- index.php | 774 +++++------------------------------------------------- 1 file changed, 59 insertions(+), 715 deletions(-) diff --git a/index.php b/index.php index c57e9c4..b16efff 100644 --- a/index.php +++ b/index.php @@ -49,27 +49,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { file_put_contents('post_debug.log', date('Y-m-d H:i:s') . " - POST: " . json_encode($_POST) . "\n", FILE_APPEND); } require_once 'db/config.php'; - -# Timezone setup -try { - $stmt_tz = db()->prepare("SELECT `value` FROM settings WHERE `key` = 'time_zone'"); - $stmt_tz->execute(); - $tz_setting = $stmt_tz->fetchColumn(); - $timezone = $tz_setting ?: 'Asia/Muscat'; // Default to Muscat - date_default_timezone_set($timezone); - # Sync DB - $now = new DateTime(); - $mins = $now->getOffset() / 60; - $sgn = ($mins < 0 ? -1 : 1); - $mins = abs($mins); - $hrs = floor($mins / 60); - $mins -= $hrs * 60; - $offset = sprintf('%+d:%02d', $hrs * $sgn, $mins); - db()->exec("SET time_zone = '$offset'"); -} catch (Exception $e) { - date_default_timezone_set('Asia/Muscat'); -} - require_once 'includes/DatabaseInstaller.php'; // Auto-install database if not installed @@ -290,24 +269,22 @@ function renderPagination($currentPage, $totalPages) { - "; @@ -3467,64 +3444,7 @@ switch ($page) { $data['backup_settings'] = $stmt->fetchAll(PDO::FETCH_KEY_PAIR); break; case 'accounting': - // Pagination for Journal Entries - $page = isset($_GET['p']) ? max(1, (int)$_GET['p']) : 1; - $limit = isset($_GET['limit']) ? (int)$_GET['limit'] : 20; - $offset = ($page - 1) * $limit; - - $total_entries = db()->query("SELECT COUNT(*) FROM acc_journal_entries")->fetchColumn(); - $data['total_pages'] = ceil($total_entries / $limit); - $data['current_page'] = $page; - - $data['journal_entries'] = db()->query("SELECT je.*, - (SELECT SUM(debit) FROM acc_ledger WHERE journal_entry_id = je.id) as total_debit - FROM acc_journal_entries je - ORDER BY je.entry_date DESC, je.id DESC LIMIT $limit OFFSET $offset")->fetchAll(); - $data['accounts'] = db()->query("SELECT * FROM acc_accounts ORDER BY code ASC")->fetchAll(); - - if (isset($_GET['action']) && $_GET['action'] === 'get_entry_details') { - header('Content-Type: application/json'); - $id = (int)$_GET['id']; - $stmt = db()->prepare("SELECT l.*, a.name_en, a.code FROM acc_ledger l JOIN acc_accounts a ON l.account_id = a.id WHERE l.journal_entry_id = ?"); - $stmt->execute([$id]); - echo json_encode($stmt->fetchAll()); - exit; - } - - if (isset($_GET['view']) && $_GET['view'] === 'trial_balance') { - $data['trial_balance'] = db()->query("SELECT a.code, a.name_en, SUM(l.debit) as total_debit, SUM(l.credit) as total_credit - FROM acc_accounts a - LEFT JOIN acc_ledger l ON a.id = l.account_id - GROUP BY a.id - HAVING total_debit > 0 OR total_credit > 0 - ORDER BY a.code ASC")->fetchAll(); - } - - if (isset($_GET['view']) && $_GET['view'] === 'profit_loss') { - $data['revenue_accounts'] = db()->query("SELECT code, name_en, name_ar FROM acc_accounts WHERE type = 'revenue' AND parent_id IS NOT NULL ORDER BY code ASC")->fetchAll(); - $data['expense_accounts'] = db()->query("SELECT code, name_en, name_ar FROM acc_accounts WHERE type = 'expense' AND parent_id IS NOT NULL ORDER BY code ASC")->fetchAll(); - } - - if (isset($_GET['view']) && $_GET['view'] === 'balance_sheet') { - $data['asset_accounts'] = db()->query("SELECT code, name_en, name_ar FROM acc_accounts WHERE type = 'asset' AND parent_id IS NOT NULL ORDER BY code ASC")->fetchAll(); - $data['liability_accounts'] = db()->query("SELECT code, name_en, name_ar FROM acc_accounts WHERE type = 'liability' AND parent_id IS NOT NULL ORDER BY code ASC")->fetchAll(); - $data['equity_accounts'] = db()->query("SELECT code, name_en, name_ar FROM acc_accounts WHERE type = 'equity' AND parent_id IS NOT NULL ORDER BY code ASC")->fetchAll(); - } - - if (isset($_GET['view']) && $_GET['view'] === 'vat_report') { - $start = $_GET['start_date'] ?? date('Y-m-01'); - $end = $_GET['end_date'] ?? date('Y-m-d'); - $data['vat_report'] = getVatReport($start, $end); - $data['start_date'] = $start; - $data['end_date'] = $end; - } - - if (isset($_GET['view']) && $_GET['view'] === 'coa') { - $data['coa'] = db()->query("SELECT a.*, p.name_en as parent_name - FROM acc_accounts a - LEFT JOIN acc_accounts p ON a.parent_id = p.id - ORDER BY a.code ASC")->fetchAll(); - } + require 'pages/accounting_logic.php'; break; case 'expense_report': $start_date = $_GET['start_date'] ?? date('Y-m-01'); @@ -3887,7 +3807,7 @@ $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Accounting System'; - @@ -6511,7 +6330,7 @@ $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Accounting System';
- +
@@ -6636,7 +6455,7 @@ $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Accounting System';
- +
@@ -6803,7 +6622,7 @@ $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Accounting System';
- +
@@ -6952,7 +6771,6 @@ $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Accounting System';
-
@@ -7417,370 +7235,7 @@ $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Accounting System';
-
-
-
Accounting Module
-
- - - - - - -
-
- -
-
-
-

-

-
-
-

-
-
-
- - -
- - - - - - - - - - - - - - - - - - - - - -
DateDescriptionReferenceAmountAction
- -
-
- - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - -
CodeNameTypeParentBalance
-
- -
-
- - - - -
-
-
-
- - -
- -
-
- -
-
- -
-
-
-
-
-

VAT Summary Report

- - - - - - - - - - - - - -
VAT Input (Purchases)
VAT Output (Sales)
Net VAT Payable / (Refundable)
-
- - This report calculates the difference between VAT collected on sales and VAT paid on purchases for the selected period. -
-
-
-
-
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeAccount NameDebitCredit
Total
-
- -
-
-
-
-

Profit & Loss Statement

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Revenue
Total Revenue
Expenses
Total Expenses
Net Profit / Loss
-
-
-
-
- -
-
-
-
-

Balance Sheet

-
-
-
Assets
- - - - - - - - - - - -
Total Assets
-
-
-
Liabilities & Equity
- - - - - - - - - - - - - - - - - - query("SELECT code FROM acc_accounts WHERE type='revenue' AND parent_id IS NOT NULL")->fetchAll() as $a) $rev += getAccountBalance($a['code']); - $exp = 0; foreach(db()->query("SELECT code FROM acc_accounts WHERE type='expense' AND parent_id IS NOT NULL")->fetchAll() as $a) $exp += getAccountBalance($a['code']); - $earnings = $rev - $exp; - $total_equity += $earnings; - ?> - - - - - - - - - -
Liabilities
Equity
Retained Earnings (Current)
Total Liab. & Equity
-
-
-
-
-
-
- -
- - - - - - +
@@ -7791,7 +7246,7 @@ $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Accounting System';
-
+
@@ -7983,7 +7438,7 @@ $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Accounting System';
- +
@@ -8106,7 +7561,7 @@ $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Accounting System';
- +
@@ -8167,7 +7622,7 @@ $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Accounting System';
- +
@@ -8331,7 +7786,7 @@ $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Accounting System';