(() => {
// سند قبض — unified print anatomy (print/ap-print.css via ApdDoc).
function Receipt({ payment, remaining, onClose }) {
  const D = window.AP_DATA, L = D.lease;
  const { ApdDoc, ApdAmount, ApdFields, ApdNote, ApdContext, apdNum } = window;
  const pending = payment.status === 'pending' || payment.pending;
  const periods = payment.preview.rows.map((r) => r.period + ' — ' + apdNum(r.take) + ' ر.س' + (r.after ? ' (جزئي، يبقى ' + apdNum(r.after) + ')' : ''));
  return (
    <ApdDoc onClose={onClose} label={'سند قبض ' + payment.receipt} kind="سند مالي" title="سند قبض"
      ids={[['رقم', payment.receipt], ['التاريخ', payment.date]]}
      meta={[['الجهة المصدرة', D.org], ['المالك', L.owner]]}
      status={pending ? { tone: 'warn', text: 'بانتظار التحقق' } : { tone: 'ok', text: 'دفعة مؤكدة' }}
      stamp={pending ? { tone: 'warn', text: 'بانتظار التحقق' } : null}
      sign={pending ? null : ['المستلم', 'المحاسب', 'الختم']}
      foot="هذا السند إثبات استلام مبلغ، وليس فاتورة ضريبية ولا مستندًا حكوميًا.">
      <ApdAmount label="مبلغ وقدره" value={payment.amount} words={window.amountToArabicWords(payment.amount)} />
      <ApdFields rows={[
        ['استلمنا من', payment.tenant || L.tenant],
        ['العقار / الوحدة', payment.where || (L.property + ' — وحدة ' + L.unit)],
        ['وذلك عن', periods.join('\n'), true],
        ['طريقة الاستلام', payment.method],
        ['جهة الاستلام', payment.recipientLabel],
        payment.ref && ['المرجع', <bdi dir="ltr">{payment.ref}</bdi>],
        ['سجّله', payment.by]
      ]} />
      {remaining > 0 && <ApdNote>المتبقي المتأخر على العقد حتى <bdi>{D.today}</bdi>: <b><bdi>{apdNum(remaining)}</bdi> ر.س</b> — للعلم فقط، لا يغيّر قيمة هذا السند.</ApdNote>}
      <ApdContext>المبلغ مسجل لصالح المالك؛ المكتب مدير للعقار وليس مالكًا له.</ApdContext>
    </ApdDoc>
  );
}
Object.assign(window, { Receipt });
})();
