<?php
declare(strict_types=1);

require_once __DIR__ . '/_layout.php';

$pdo      = financial_db();
$branchId = financial_branch_id();
$msg      = (string)($_GET['msg'] ?? '');
$err      = (string)($_GET['err'] ?? '');

financial_page_start('المدخولات');

$rows = [];

$hasAttachmentPath = financial_has_column($pdo, 'financial_income', 'attachment_path');
$hasVatAmount      = financial_has_column($pdo, 'financial_income', 'vat_amount');
$hasNetAmount      = financial_has_column($pdo, 'financial_income', 'net_amount');

$selectAttachment = $hasAttachmentPath ? ', attachment_path' : '';
$selectVat        = $hasVatAmount ? ', vat_amount' : '';
$selectNet        = $hasNetAmount ? ', net_amount' : '';

try {
    $st = $pdo->prepare("
        SELECT 
            id,
            case_id,
            client_name,
            service_type,
            amount,
            payment_method,
            income_date,
            notes
            {$selectAttachment}
            {$selectVat}
            {$selectNet}
        FROM financial_income
        WHERE branch_id = ?
        ORDER BY income_date DESC, id DESC
        LIMIT 100
    ");

    $st->execute([$branchId]);
    $rows = $st->fetchAll(PDO::FETCH_ASSOC);
} catch (Throwable $e) {
    $rows = [];
}
?>

<style>
.fin-upload-box{
  width:100%;
  min-height:48px;
  display:flex;
  align-items:center;
  padding:8px 10px;
  border-radius:14px;
  border:1px dashed rgba(212,175,55,.45);
  background:rgba(255,255,255,.04);
}

.fin-upload-box input[type="file"]{
  width:100%;
  color:rgba(255,255,255,.75);
  cursor:pointer;
}

.fin-upload-box input[type="file"]::file-selector-button{
  border:0;
  background:linear-gradient(135deg,#f8d56b,#d4af37);
  color:#102326;
  padding:9px 14px;
  margin-inline-end:10px;
  border-radius:10px;
  font-weight:900;
  cursor:pointer;
}

.fin-upload-hint{
  display:block;
  margin-top:7px;
  color:rgba(255,255,255,.55);
  font-size:12px;
}

.fin-table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  padding-bottom:12px;
  border-radius:18px;
}

.fin-table{
  width:100%;
  min-width:1120px;
  table-layout:auto;
  border-collapse:collapse;
}

.fin-table th,
.fin-table td{
  padding:14px 12px;
  text-align:center;
  vertical-align:middle;
  border-bottom:1px solid rgba(255,255,255,.06);
  white-space:nowrap;
  font-size:14px;
}

.fin-table th{
  font-weight:900;
  color:#f8d56b;
  background:rgba(255,255,255,.04);
}

.fin-table .notes-cell{
  min-width:220px;
  max-width:300px;
  white-space:normal;
  line-height:1.8;
  word-break:break-word;
}

.fin-table .actions-cell{
  min-width:150px;
}

.fin-table .row-actions{
  display:flex;
  flex-direction:row;
  gap:8px;
  align-items:center;
  justify-content:center;
  flex-wrap:nowrap;
}

.fin-table .row-actions form{
  margin:0;
}

.fin-table .row-actions .btn,
.fin-table .row-actions button.btn{
  min-width:64px;
  height:38px;
  padding:0 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  font-size:13px;
  white-space:nowrap;
}

.fin-table .delete-btn{
  border-color:#ef4444 !important;
  color:#ffb4b4 !important;
}

.fin-vat{
  color:#f8d56b;
  font-weight:900;
}

.fin-net{
  color:#7dd3fc;
  font-weight:900;
}

.fin-total{
  color:#86efac;
  font-weight:900;
}

@media(max-width:768px){
  .fin-table{
    min-width:1120px;
  }

  .fin-table th,
  .fin-table td{
    padding:12px 10px;
    font-size:13px;
  }
}
</style>
<div class="panel">
  <div class="panel-head">إضافة مدخول جديد</div>
  <div class="panel-body">

    <?php if ($msg !== ''): ?>
      <div class="msg ok"><?= financial_h($msg) ?></div>
    <?php endif; ?>

    <?php if ($err !== ''): ?>
      <div class="msg err"><?= financial_h($err) ?></div>
    <?php endif; ?>

    <form action="<?= financial_h(financial_u('income_save.php')) ?>" method="post" enctype="multipart/form-data">
      <div class="form-grid">

        <div class="field">
          <label>اسم العميل</label>
          <input class="input" type="text" name="client_name" required>
        </div>

        <div class="field">
          <label>نوع الخدمة</label>
          <select class="select" name="service_type" required>
            <option value="">اختر الخدمة</option>
            <option value="استشارة قانونية">استشارة قانونية</option>
            <option value="أتعاب قضية">أتعاب قضية</option>
            <option value="صياغة عقد">صياغة عقد</option>
            <option value="تسجيل شركة">تسجيل شركة</option>
            <option value="علامة تجارية">علامة تجارية</option>
            <option value="خدمة قانونية أخرى">خدمة قانونية أخرى</option>
          </select>
        </div>

        <div class="field">
          <label>المبلغ شامل VAT</label>
          <input class="input" type="number" step="0.01" min="0" name="amount" required>
        </div>

        <div class="field">
          <label>طريقة الدفع</label>
          <select class="select" name="payment_method" required>
            <option value="نقدي">نقدي</option>
            <option value="تحويل بنكي">تحويل بنكي</option>
            <option value="بطاقة">بطاقة</option>
            <option value="رابط دفع">رابط دفع</option>
          </select>
        </div>

        <div class="field">
          <label>تاريخ المدخول</label>
          <input class="input" type="date" name="income_date" value="<?= financial_h(date('Y-m-d')) ?>" required>
        </div>

        <div class="field">
          <label>رقم القضية اختياري</label>
          <input class="input" type="number" name="case_id" min="1">
        </div>

        <?php if ($hasAttachmentPath): ?>
          <div class="field">
            <label>إرفاق ملف</label>
            <div class="fin-upload-box">
              <input type="file" name="attachment" accept=".pdf,.jpg,.jpeg,.png,.webp">
            </div>
            <small class="fin-upload-hint">الصيغ المسموحة: PDF, JPG, JPEG, PNG, WEBP</small>
          </div>
        <?php endif; ?>

        <div class="field" style="grid-column:1/-1;">
          <label>ملاحظات</label>
          <textarea class="textarea" name="notes"></textarea>
        </div>

      </div>

      <div class="actions" style="margin-top:14px;">
        <button class="btn primary" type="submit">حفظ المدخول</button>
      </div>
    </form>

  </div>
</div>

<div class="panel">
  <div class="panel-head">استيراد المدخولات من Excel / CSV</div>
  <div class="panel-body">

    <form action="<?= financial_h(financial_u('import_process.php')) ?>"
          method="post"
          enctype="multipart/form-data">

      <input type="hidden" name="import_type" value="income">

      <div class="field">
        <label>ملف Excel أو CSV</label>

        <div class="fin-upload-box">
          <input type="file"
                 name="csv_file"
                 accept=".csv,.xlsx,.xls"
                 required>
        </div>

        <small class="fin-upload-hint">
          ترتيب الأعمدة: التاريخ، اسم العميل، نوع الخدمة، المبلغ شامل VAT، طريقة الدفع، الملاحظات
        </small>
      </div>

      <div class="actions" style="margin-top:14px;">
        <button class="btn primary" type="submit">استيراد المدخولات</button>
      </div>

    </form>

  </div>
</div>

<div class="panel">
  <div class="panel-head">سجل المدخولات</div>
  <div class="panel-body">

    <div class="fin-table-wrap">
      <table class="fin-table">
        <thead>
          <tr>
            <th>التاريخ</th>
            <th>العميل</th>
            <th>الخدمة</th>
            <?php if ($hasNetAmount): ?>
              <th>قبل الضريبة</th>
            <?php endif; ?>
            <?php if ($hasVatAmount): ?>
              <th>VAT</th>
            <?php endif; ?>
            <th>شامل الضريبة</th>
            <th>طريقة الدفع</th>
            <?php if ($hasAttachmentPath): ?>
              <th>المرفق</th>
            <?php endif; ?>
            <th>الملاحظات</th>
            <th>الإجراءات</th>
          </tr>
        </thead>

        <tbody>
          <?php
          $colspan = 7;
          if ($hasNetAmount) $colspan++;
          if ($hasVatAmount) $colspan++;
          if ($hasAttachmentPath) $colspan++;
          ?>

          <?php if (!$rows): ?>
            <tr>
              <td colspan="<?= (int)$colspan ?>">لا توجد مدخولات حتى الآن.</td>
            </tr>
          <?php else: ?>
            <?php foreach ($rows as $row): ?>
              <?php
              $amount = (float)($row['amount'] ?? 0);
              $vat    = $hasVatAmount ? (float)($row['vat_amount'] ?? 0) : 0;
              $net    = $hasNetAmount ? (float)($row['net_amount'] ?? 0) : max(0, $amount - $vat);
              ?>

              <tr>
                <td><?= financial_h((string)($row['income_date'] ?? '')) ?></td>
                <td><?= financial_h((string)($row['client_name'] ?? '—')) ?></td>
                <td><?= financial_h((string)($row['service_type'] ?? '—')) ?></td>

                <?php if ($hasNetAmount): ?>
                  <td class="fin-net"><?= financial_h(number_format($net, 2) . ' د.إ') ?></td>
                <?php endif; ?>

                <?php if ($hasVatAmount): ?>
                  <td class="fin-vat"><?= financial_h(number_format($vat, 2) . ' د.إ') ?></td>
                <?php endif; ?>

                <td class="fin-total"><?= financial_h(number_format($amount, 2) . ' د.إ') ?></td>

                <td><?= financial_h((string)($row['payment_method'] ?? '—')) ?></td>

                <?php if ($hasAttachmentPath): ?>
                  <td>
                    <?php if (!empty($row['attachment_path'])): ?>
                      <a class="btn soft" href="<?= financial_h((string)$row['attachment_path']) ?>" target="_blank">عرض</a>
                    <?php else: ?>
                      —
                    <?php endif; ?>
                  </td>
                <?php endif; ?>

                <td class="notes-cell"><?= financial_h((string)($row['notes'] ?? '—')) ?></td>

                <td class="actions-cell">
                  <div class="row-actions">
                    <a class="btn" href="<?= financial_h(financial_u('income_edit.php?id=' . (int)$row['id'])) ?>">تعديل</a>

                    <form action="<?= financial_h(financial_u('income_delete.php')) ?>" method="post" onsubmit="return confirm('هل أنت متأكد من حذف هذا المدخول؟');">
                      <input type="hidden" name="id" value="<?= (int)$row['id'] ?>">
                      <button class="btn delete-btn" type="submit">حذف</button>
                    </form>
                  </div>
                </td>
              </tr>
            <?php endforeach; ?>
          <?php endif; ?>
        </tbody>

      </table>
    </div>

  </div>
</div>

<?php financial_page_end(); ?>