<?= $this->extend('layouts/enterprise') ?>

<?= $this->section('content') ?>

<?php
$statusPill = static function (string $status): string {
    $label    = ucwords(str_replace('_', ' ', $status));
    $active   = ['approved', 'completed'];
    $inactive = ['cancelled'];
    if (in_array($status, $active, true)) {
        $class = 'active';
    } elseif (in_array($status, $inactive, true)) {
        $class = 'inactive';
    } else {
        $class = 'default';
    }
    return '<span class="enterprise-status-pill enterprise-status-pill--' . esc($class) . '">' . esc($label) . '</span>';
};

$returnStatuses = ['draft', 'submitted', 'approved', 'completed', 'cancelled'];
?>

<?= view('partials/workspace_hero', [
    'workspaceCrumbPill'    => 'Procurement',
    'workspaceCrumbCurrent' => 'Purchase Returns',
    'workspaceTitle'        => 'Purchase Returns',
    'workspaceDesc'         => 'Process and track purchase return documents.',
    'workspaceAction'       => [
        'href'  => base_url('procurement/purchase-returns/create'),
        'label' => 'New Return',
        'icon'  => 'fa-solid fa-plus',
    ],
]) ?>

<div class="enterprise-data-panel">
    <div class="enterprise-data-panel__head">
        <h2 class="enterprise-data-panel__title">Purchase Returns</h2>
        <p class="enterprise-data-panel__subtitle">Draft through submit, approve, and complete.</p>
    </div>

    <div class="enterprise-data-panel__toolbar">
        <form action="<?= base_url('procurement/purchase-returns') ?>" method="get">
            <div class="enterprise-filter-grid">
                <div>
                    <label class="enterprise-field-label">Search</label>
                    <input type="text" name="q" class="form-control form-control-sm" placeholder="Number, supplier, PO, GRN, reason"
                           value="<?= esc($filters['search'] ?? '') ?>">
                </div>
                <div>
                    <label class="enterprise-field-label">Status</label>
                    <select name="status" class="form-select form-select-sm">
                        <option value="">Any</option>
                        <?php foreach ($returnStatuses as $s): ?>
                            <option value="<?= $s ?>" <?= ($filters['status'] ?? '') === $s ? 'selected' : '' ?>>
                                <?= esc(ucwords(str_replace('_', ' ', $s))) ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>
                <div>
                    <label class="enterprise-field-label">Supplier</label>
                    <select name="supplier_id" class="form-select form-select-sm">
                        <option value="">Any</option>
                        <?php foreach ($suppliers as $s): ?>
                            <option value="<?= $s['id'] ?>" <?= (string) ($filters['supplierId'] ?? '') === (string) $s['id'] ? 'selected' : '' ?>>
                                <?= esc($s['name']) ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>
                <div class="enterprise-filter-actions">
                    <button type="submit" class="btn btn-sm btn-primary">Apply Filters</button>
                </div>
            </div>
        </form>
    </div>

    <div class="enterprise-data-panel__body">
        <div class="table-responsive">
            <table class="enterprise-data-table">
                <thead>
                    <tr>
                        <th>Number</th>
                        <th>Supplier</th>
                        <th>PO</th>
                        <th>GRN</th>
                        <th>Return Date</th>
                        <th class="text-end">Total</th>
                        <th>Reason</th>
                        <th>Status</th>
                        <th class="text-end">Actions</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($returns as $r): ?>
                        <?php
                        $st          = $r['status'];
                        $canEdit     = $st === 'draft';
                        $canSubmit   = $st === 'draft';
                        $canApprove  = $st === 'submitted';
                        $canComplete = $st === 'approved';
                        $canCancel   = ! in_array($st, ['completed', 'cancelled'], true);
                        $canDelete   = in_array($st, ['draft', 'cancelled'], true);
                        ?>
                        <tr>
                            <td><span class="enterprise-data-table__primary"><code><?= esc($r['number']) ?></code></span></td>
                            <td><?= esc($r['supplier_name'] ?? '—') ?></td>
                            <td><?= ! empty($r['purchase_order_number']) ? '<code>' . esc($r['purchase_order_number']) . '</code>' : '—' ?></td>
                            <td><?= ! empty($r['goods_receipt_number']) ? '<code>' . esc($r['goods_receipt_number']) . '</code>' : '—' ?></td>
                            <td><?= esc($r['return_date'] ?? '—') ?></td>
                            <td class="text-end"><?= number_format((float) ($r['total'] ?? 0), 2) ?></td>
                            <td><?= $r['reason'] ? esc(mb_strimwidth($r['reason'], 0, 40, '…')) : '—' ?></td>
                            <td><?= $statusPill($st) ?></td>
                            <td class="text-end enterprise-row-actions">
                                <?php if ($canEdit || $canSubmit || $canApprove || $canComplete || $canCancel || $canDelete): ?>
                                    <div class="dropdown">
                                        <button class="btn btn-sm btn-outline-secondary" data-bs-toggle="dropdown"><i class="fa-solid fa-ellipsis"></i></button>
                                        <ul class="dropdown-menu dropdown-menu-end enterprise-nav-menu">
                                            <?php if ($canEdit): ?>
                                                <li><a class="dropdown-item" href="<?= base_url('procurement/purchase-returns/' . $r['id'] . '/edit') ?>"><i class="fa-solid fa-pen me-2"></i>Edit</a></li>
                                            <?php endif; ?>
                                            <?php if ($canSubmit): ?>
                                                <li>
                                                    <form action="<?= base_url('procurement/purchase-returns/' . $r['id'] . '/submit') ?>" method="post">
                                                        <?= csrf_field() ?>
                                                        <button type="submit" class="dropdown-item"><i class="fa-solid fa-paper-plane me-2"></i>Submit</button>
                                                    </form>
                                                </li>
                                            <?php endif; ?>
                                            <?php if ($canApprove): ?>
                                                <li>
                                                    <form action="<?= base_url('procurement/purchase-returns/' . $r['id'] . '/approve') ?>" method="post">
                                                        <?= csrf_field() ?>
                                                        <button type="submit" class="dropdown-item"><i class="fa-solid fa-check me-2"></i>Approve</button>
                                                    </form>
                                                </li>
                                            <?php endif; ?>
                                            <?php if ($canComplete): ?>
                                                <li>
                                                    <form action="<?= base_url('procurement/purchase-returns/' . $r['id'] . '/complete') ?>" method="post">
                                                        <?= csrf_field() ?>
                                                        <button type="submit" class="dropdown-item"><i class="fa-solid fa-circle-check me-2"></i>Complete</button>
                                                    </form>
                                                </li>
                                            <?php endif; ?>
                                            <?php if ($canCancel): ?>
                                                <li>
                                                    <form action="<?= base_url('procurement/purchase-returns/' . $r['id'] . '/cancel') ?>" method="post" onsubmit="return confirm('Cancel this purchase return?');">
                                                        <?= csrf_field() ?>
                                                        <button type="submit" class="dropdown-item"><i class="fa-solid fa-ban me-2"></i>Cancel</button>
                                                    </form>
                                                </li>
                                            <?php endif; ?>
                                            <?php if ($canDelete): ?>
                                                <li><hr class="dropdown-divider"></li>
                                                <li>
                                                    <form action="<?= base_url('procurement/purchase-returns/' . $r['id'] . '/delete') ?>" method="post" onsubmit="return confirm('Delete this purchase return?');">
                                                        <?= csrf_field() ?>
                                                        <button type="submit" class="dropdown-item text-danger"><i class="fa-solid fa-trash me-2"></i>Delete</button>
                                                    </form>
                                                </li>
                                            <?php endif; ?>
                                        </ul>
                                    </div>
                                <?php else: ?>
                                    <span class="text-muted small">—</span>
                                <?php endif; ?>
                            </td>
                        </tr>
                    <?php endforeach; ?>
                    <?php if (count($returns) === 0): ?>
                        <tr><td colspan="9" class="text-center text-muted py-5">No purchase returns found.</td></tr>
                    <?php endif; ?>
                </tbody>
            </table>
        </div>
    </div>
</div>

<?= $this->endSection() ?>
