<?php
require_once __DIR__ . '/../app/init.php';
require_once __DIR__ . '/../app/db.php';
require_once __DIR__ . '/../app/audit.php';
require_once __DIR__ . '/../app/cash_tx_lock.php';
require_login();

$pdo = db();
$cid = (int)$_SESSION['company_id'];

$id = (int)($_GET['id'] ?? 0);
if ($id<=0) die('Invalid id');

if (cash_tx_is_locked_from_cash_page($pdo, $cid, $id)) {
  $label = cash_tx_linked_source_label($pdo, $cid, $id) ?: 'صفحة أخرى';
  die('لا يمكن حذف هذه الحركة من صفحة الوارد والمنصرف لأنها مرتبطة بـ ' . $label);
}

// block delete if posted
$chk = $pdo->prepare("SELECT entry_id FROM cash_tx_journal_map WHERE cash_tx_id=?");
$chk->execute([$id]);
if ($chk->fetchColumn()) {
  die('لا يمكن حذف حركة مرحّلة. قم بإلغاء الترحيل أولاً.');
}

$stmt = $pdo->prepare("SELECT * FROM cash_transactions WHERE id=? AND company_id=? LIMIT 1");
$stmt->execute([$id,$cid]);
$tx = $stmt->fetch(PDO::FETCH_ASSOC);
$att = $tx['attachment'] ?? null;

$pdo->prepare("DELETE FROM cash_transactions WHERE id=? AND company_id=?")->execute([$id,$cid]);

if ($tx) {
  audit_log($pdo, [
    'company_id' => $cid,
    'user_id' => (int)($_SESSION['user_id'] ?? 0),
    'module' => 'cash',
    'action' => 'DELETE',
    'entity_type' => 'cash_transaction',
    'entity_id' => (string)$id,
    'description' => audit_cash_description($pdo, $cid, 'حذف حركة مالية', $tx),
  ]);
}

// optionally delete file
if ($att) {
  $path = __DIR__ . '/../' . ltrim($att,'/');
  if (is_file($path)) @unlink($path);
}

flash_set('تم حذف الحركة المالية بنجاح');
header("Location: " . url('/cash/index.php'));
exit;
