<%- include('../partials/head', { title }) %>
<div class="grid gap-6 xl:grid-cols-[1fr_24rem]">
  <div class="space-y-6">
    <section class="panel p-6"><div class="flex flex-wrap justify-between gap-4"><div><div class="flex gap-2"><h2 class="text-2xl font-black" dir="ltr"><%= request.invoice_number %></h2><span class="<%= request.delivery_type === 'complete' ? 'badge-success' : 'badge-warning' %>"><%= request.delivery_type === 'complete' ? 'تحویل کامل' : 'تحویل جزئی' %></span></div><p class="mt-2"><%= request.customer_name ?? 'مشتری ثبت نشده' %></p></div><dl class="grid grid-cols-2 gap-x-5 gap-y-2 text-sm"><dt class="text-slate-500">درخواست‌کننده</dt><dd class="font-bold"><%= request.requester %></dd><dt class="text-slate-500">تأییدکننده</dt><dd><%= request.approver %></dd><dt class="text-slate-500">زمان تأیید</dt><dd><%= formatJalaliDateTime(request.approved_at) %></dd><dt class="text-slate-500">وضعیت</dt><dd><%= ({pending:'در انتظار تحویل',delivered:'تحویل‌شده',cancelled:'لغوشده',returned:'برگشت از تحویل'})[request.status] %></dd></dl></div></section>
    <section class="panel"><div class="panel-header"><h2 class="font-black">اقلام دقیق تأییدشده</h2><span class="text-xs text-slate-500">غیرقابل ویرایش</span></div><div class="table-wrap"><table class="data-table"><thead><tr><th>کد کالا</th><th>نام</th><th>واحد</th><th>مقدار تأییدشده</th></tr></thead><tbody><% if (!items.length) { %><tr><td colspan="4" class="py-10 text-center font-bold">تحویل کامل فاکتور — جزئیات اقلام در فایل مالی موجود نیست</td></tr><% } %><% items.forEach(item => { %><tr><td dir="ltr"><%= item.product_code %></td><td><%= item.product_name %></td><td><%= item.unit %></td><td class="text-lg font-black"><%= Number(item.approved_quantity).toLocaleString('fa-IR') %></td></tr><% }) %></tbody></table></div><% if (request.notes) { %><div class="border-t p-4 text-sm dark:border-slate-800"><b>یادداشت:</b> <%= request.notes %></div><% } %></section>
    <section class="panel"><div class="panel-header"><h2 class="font-black">تاریخچه درخواست</h2></div><ol class="space-y-3 p-5"><% events.forEach(event => { %><li class="rounded-xl border border-slate-200 p-3 dark:border-slate-800"><div class="font-bold"><%= ({approved:'تأیید مدیر تأمین',delivered:'تحویل کالا',cancelled:'لغو تحویل',returned:'برگشت از تحویل',redelivered:'تحویل مجدد'})[event.event_type] %></div><div class="mt-1 text-xs text-slate-500"><%= event.actor %> — <%= formatJalaliDateTime(event.occurred_at) %></div><% if (event.reason) { %><div class="mt-2 text-sm">دلیل: <%= event.reason %></div><% } %></li><% }) %></ol></section>
  </div>
  <aside class="panel h-fit p-5 xl:sticky xl:top-24"><h2 class="font-black">عملیات اتمیک انبار</h2><p class="mt-2 text-sm leading-7 text-slate-500">عملیات روی تمام اقلام تأییدشده اعمال می‌شود؛ تحویل جزئی یا تغییر مقدار در دسترس نیست.</p>
    <% if (canAct && (request.status === 'pending' || request.status === 'returned')) { %><form method="post" action="/warehouse/<%= request.id %>/deliver" class="mt-5" data-confirm="تمام اقلام تأییدشده تحویل شدند؟"><input type="hidden" name="_csrf" value="<%= csrfToken %>"><input type="hidden" name="idempotencyKey" value="<%= idempotencyKey %>"><button class="btn-primary w-full" type="submit"><%= request.status === 'returned' ? 'تحویل مجدد همان اقلام' : 'تحویل کالا' %></button></form><form method="post" action="/warehouse/<%= request.id %>/cancel" class="mt-5 space-y-2"><input type="hidden" name="_csrf" value="<%= csrfToken %>"><input type="hidden" name="idempotencyKey" value="<%= idempotencyKey %>-cancel"><label><span class="label">دلیل لغو *</span><textarea class="input" name="reason" required minlength="3"></textarea></label><button class="btn-danger w-full" type="submit">لغو کل تحویل</button></form><% } %>
    <% if (canAct && request.status === 'delivered') { %><form method="post" action="/warehouse/<%= request.id %>/return" class="mt-5 space-y-2" data-confirm="برگشت از تحویل ثبت شود و همین درخواست برای تحویل مجدد باز شود؟"><input type="hidden" name="_csrf" value="<%= csrfToken %>"><input type="hidden" name="idempotencyKey" value="<%= idempotencyKey %>-return"><label><span class="label">دلیل برگشت *</span><textarea class="input" name="reason" required minlength="3"></textarea></label><button class="btn-danger w-full" type="submit">برگشت از تحویل</button></form><% } %>
    <% if (!canAct) { %><p class="mt-5 rounded-xl bg-slate-100 p-3 text-sm text-slate-600 dark:bg-slate-800 dark:text-slate-300">این نما فقط خواندنی است؛ عملیات تحویل باید توسط کاربر همان انبار انجام شود.</p><% } %>
    <% if (request.status === 'cancelled') { %><div class="error-box mt-5">این درخواست لغو شده و مقدار آن برای درخواست جدید مدیر تأمین آزاد است.</div><% } %>
  </aside>
</div>
<%- include('../partials/footer') %>
