<?php
if (!defined('ALLOW_MANUAL_PPP_CUT_EXECUTION')) define('ALLOW_MANUAL_PPP_CUT_EXECUTION', true);
// admin/unpay_invoice.php
// يلغي تسديد الفاتورة + يعطل PPPoE في MikroTik بدون حذف الحساب

if (session_status() === PHP_SESSION_NONE) session_start();

require_once __DIR__ . '/helpers.php';
require_once __DIR__ . '/lang.php';
require_once __DIR__ . '/auth.php';
require_once __DIR__ . '/db_bootstrap.php';
require_once __DIR__ . '/mikrotik_lib.php';
require_once __DIR__ . '/finance_payment_lib.php';

ensure_db(true);
$conn = $GLOBALS['conn'] ?? null;

require_login('login.php');
if (function_exists('require_perm')) @require_perm('can_pay_invoices');

if (!($conn instanceof mysqli)) {
  $_SESSION['flash_warning'] = 'خطأ: اتصال قاعدة البيانات غير جاهز.';
  header("Location: invoices.php");
  exit;
}

mysqli_report(MYSQLI_REPORT_OFF);

$id = (int)($_GET['id'] ?? 0);
if ($id <= 0) {
  $_SESSION['flash_warning'] = 'رقم الفاتورة غير صحيح.';
  header("Location: invoices.php");
  exit;
}

$result = finance_unpay_invoice($conn, $id);
if (!($result['ok'] ?? false)) {
  $_SESSION['flash_warning'] = (string)($result['error'] ?? 'فشل إلغاء تسديد الفاتورة.');
  header("Location: invoices.php");
  exit;
}
if (!empty($result['warning'])) {
  $_SESSION['flash_warning'] = (string)$result['warning'];
  header("Location: invoices.php");
  exit;
}

$_SESSION['flash_success'] = 'تم إلغاء تسديد الفاتورة وتعطيل المشترك على MikroTik ✅';
header("Location: invoices.php");
exit;
