<?php
$page_title = 'شراء باقة إضافية';
$UA_FORCE_DESIGN_V2 = true;
$uaAndroidInvoicesAdd = ((string)($_GET['ua_android'] ?? '') === '1') || stripos((string)($_SERVER['HTTP_USER_AGENT'] ?? ''), 'NetworkCustomersAndroid/') !== false;
$UA_PAGE_CSS = ['assets/css/invoices_add.css'];
if ($uaAndroidInvoicesAdd) $UA_PAGE_CSS[] = 'assets/css/android_invoices_add.css';
include __DIR__ . '/header.php';
include __DIR__ . '/sidebar.php';
require_once __DIR__ . '/auth.php';
require_once __DIR__ . '/helpers.php';
require_once __DIR__ . '/settings_store.php';

require_login();
if (function_exists('require_any_perm')) {
  require_any_perm(['can_add_invoices', 'can_add_invoice']);
} elseif (function_exists('require_perm')) {
  require_perm('can_add_invoices');
}

$finance_active = 'invoice_add';
$finance_group = 'billing';

$msg=""; $err="";

if(!table_exists($conn,'invoices')){
  $err = "جدول invoices غير موجود";
}

// حفظ حجم الباقة الإضافية إذا لزم
if(!$err && !col_exists($conn,'invoices','addon_size')){
  // لا نكسر شيء إذا فشل ALTER
  @$conn->query("ALTER TABLE invoices ADD COLUMN addon_size VARCHAR(20) NULL");
}

$subs = $conn->query("SELECT id, full_name, username FROM subscribers WHERE ".(function_exists('subs_active_where_sql') ? subs_active_where_sql($conn) : 'COALESCE(is_deleted,0)=0')." ORDER BY full_name ASC");

// باقات الإضافة (يمكنك ضبط الأسعار من الإعدادات)
// نستخدم لاحقة G حتى لا تتعارض مع أسماء أخرى، ونستخرج رقم الـ GB منها تلقائياً.
$ADDON_SIZES = ['5G','10G','15G','20G','25G','50G','100G'];
$addonPrices = [];
foreach($ADDON_SIZES as $s){
  $addonPrices[$s] = (string)setting_get($conn,'price_addon_'.$s,'0');
}

if(isset($_POST['save']) && !$err){
  $subscriber_id = intval($_POST['subscriber_id'] ?? 0);
  // ✅ دائماً: شراء باقة إضافية (لا يوجد اختيار نوع)
  $type          = 'ADDON';
  $addon_size    = trim($_POST['addon_size'] ?? '');
  $amount        = (float)($_POST['amount'] ?? 0);

  // حجم الإضافة يستخرج تلقائياً من الباقة المختارة. التفعيل الفعلي يتم بعد تسديد الفاتورة.
  $addon_gb = (int)preg_replace('/[^0-9]/', '', $addon_size);
  if ($addon_gb < 0) $addon_gb = 0;

  $cycle_month   = trim($_POST['cycle_month'] ?? date('Y-m'));

  if($subscriber_id<=0){
    $err="اختر مشترك";
  } elseif(!preg_match('/^\d{4}\-\d{2}$/', $cycle_month)){
    $err="صيغة الشهر غير صحيحة مثال: 2026-01";
  } else {
    // إذا ADDON: اجعل المبلغ حسب إعدادات الباقات الإضافية
    if($type==='ADDON'){
      if(!in_array($addon_size,$ADDON_SIZES,true)){
        $err='اختر باقة إضافية صحيحة';
      } else {
        $amount = (float)setting_get($conn,'price_addon_'.$addon_size,'0');
      }
    }

    if(!$err){
    $hasType  = col_exists($conn,'invoices','invoice_type');
    $hasMonth = col_exists($conn,'invoices','cycle_month');
    $hasAmt   = col_exists($conn,'invoices','amount');
    $hasStat  = col_exists($conn,'invoices','status');
    $hasDate  = col_exists($conn,'invoices','created_at');

    $cols = ["subscriber_id"];
    $vals = [$subscriber_id];

    if($hasAmt){ $cols[]="amount"; $vals[]=$amount; }
    if($hasStat){ $cols[]="status"; $vals[]="'غير مدفوع'"; }
    if($hasDate){ $cols[]="created_at"; $vals[]="NOW()"; }
    if($hasType){ $cols[]="invoice_type"; $vals[]="'$type'"; }
    if($hasMonth){ $cols[]="cycle_month"; $vals[]="'".$conn->real_escape_string($cycle_month)."'"; }
    if(col_exists($conn,'invoices','paid_amount')){ $cols[]="paid_amount"; $vals[]="0.00"; }
    if(col_exists($conn,'invoices','remaining_amount')){ $cols[]="remaining_amount"; $vals[]=(float)$amount; }
    if(col_exists($conn,'invoices','payment_status')){ $cols[]="payment_status"; $vals[]="'unpaid'"; }
    if(col_exists($conn,'invoices','updated_at')){ $cols[]="updated_at"; $vals[]="NOW()"; }

    // حفظ حجم الإضافة إذا كان العمود موجود
    if($type==='ADDON' && col_exists($conn,'invoices','addon_size')){
      $cols[]='addon_size';
      $vals[]="'".$conn->real_escape_string($addon_size)."'";
    }

    $sql = "INSERT INTO invoices (".implode(',',$cols).") VALUES (".implode(',',$vals).")";
    if($conn->query($sql)){
      $invoice_id = (int)$conn->insert_id;
      $msg="تمت إضافة الفاتورة، وسيتم تفعيل الباقة الإضافية بعد التسديد.";
    } else {
      $err="DB Error: ".$conn->error;
    }
    }
  }
}
?>

<div class="content-wrapper ua-extracted-page">
  <section class="content-header">
    <div class="container-fluid d-flex justify-content-between align-items-center">
      <h1 class="mb-0">شراء باقة إضافية</h1>
      <a href="invoices.php" class="btn btn-secondary"><i class="fa fa-arrow-right"></i> رجوع</a>
    </div>
  </section>

  <section class="content">
    <div class="container-fluid">

      <?php include __DIR__ . '/finance_tabs.php'; ?>

      <?php if($msg){ ?><div class="alert alert-success"><?= h($msg) ?></div><?php } ?>
      <?php if($err){ ?><div class="alert alert-danger"><?= h($err) ?></div><?php } ?>

      <div class="card compact">
        <div class="card-body">
          <form method="post" class="form-compact labels-left">

            <div class="row">
              <div class="col-md-4">
                <label>المشترك</label>
                <select name="subscriber_id" class="form-control" required>
                  <option value="0">اختر مشترك</option>
                  <?php if($subs){ while($s=$subs->fetch_assoc()){ ?>
                    <option value="<?= (int)$s['id'] ?>">
                      <?= h($s['full_name']) ?> (<?= h($s['username']) ?>)
                    </option>
                  <?php }} ?>
                </select>
              </div>

              <div class="col-md-4" id="addon_wrap">
                <label>الباقة الإضافية (GB)</label>
                <select name="addon_size" class="form-control" id="addon_size" required>
                  <option value="">- اختر -</option>
                  <?php foreach($ADDON_SIZES as $s){ $gb = (int)preg_replace('/[^0-9]/','',$s); ?>
                    <option value="<?= h($s) ?>"><?= (int)$gb ?> GB (سعر: <?= h($addonPrices[$s] ?? '0') ?>)</option>
                  <?php } ?>
                </select>
              </div>

              <div class="col-md-2">
                <label>المبلغ</label>
                <input name="amount" type="number" step="0.01" class="form-control" value="0" required>
              </div>

              <div class="col-md-2">
                <label>الشهر</label>
                <input name="cycle_month" class="form-control" value="<?= h(date('Y-m')) ?>" placeholder="2026-01">
              </div>
            </div>

            <small class="text-muted ia-addon-note">سيتم تحديد المبلغ تلقائياً حسب الإعدادات، وسيُضاف الحجم فور إنشاء الفاتورة (صالح حتى نهاية الشهر).</small>

            <!-- تم دمج (حجم الباقة الإضافية) مع (الباقة الإضافية) في قائمة واحدة -->
            <input type="hidden" name="addon_gb" id="addon_gb" value="0">


            <!-- نوع الفاتورة ثابت: ADDON -->
            <input type="hidden" name="invoice_type" value="ADDON">

            <div class="mt-4">
              <button class="btn btn-success" name="save"><i class="fa fa-save"></i> حفظ</button>
            </div>

          </form>

          <script>
            (function(){
              var addonSel = document.getElementById('addon_size');
              var amount = document.querySelector('input[name="amount"]');
              var addonGb = document.getElementById('addon_gb');
              var addonPrices = <?php echo json_encode($addonPrices, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES); ?>;

              function refresh(){
                var sz = addonSel.value;
                // استخرج رقم الـ GB من قيمة الباقة مثل 20G -> 20
                var gb = 0;
                if(sz){
                  gb = parseInt(String(sz).replace(/[^0-9]/g,''), 10) || 0;
                }
                if(addonGb) addonGb.value = gb;
                if(sz && typeof addonPrices[sz] !== 'undefined'){
                  amount.value = addonPrices[sz];
                }
              }

              addonSel.addEventListener('change', refresh);
              refresh();
            })();
          </script>
        </div>
      </div>

    </div>
  </section>
</div>

<?php include __DIR__ . '/footer.php'; ?>
