(() => {
const { DataTable, Money, StatusBadge, Button, SummaryStrip, Select, Alert, SegmentedControl } = window.AmlakPlusDesignSystem_b3aa85;

// كشف العمارة الشهري — current reference columns (SHEET-02 column changes are NOT approved; kept as-is).
function BuildingSheet({ property, openPayment }) {
  const D = window.AP_DATA;
  const rows = D.sheet;
  const [printing, setPrinting] = React.useState(false);
  const occ = rows.filter((r) => r.st !== 'vacant');
  const rent = occ.reduce((s, r) => s + r.rent, 0), paid = occ.reduce((s, r) => s + r.paid, 0), prev = occ.reduce((s, r) => s + r.prev, 0);
  const cols = [
    { key: 'u', header: 'الوحدة', width: 64, render: (r) => <span className="ap-cell-strong">{r.u}</span> },
    { key: 't', header: 'المستأجر', render: (r) => r.t },
    { key: 'period', header: 'فترة الدفعة' },
    { key: 'rent', header: 'قيمة الإيجار', numeric: true, render: (r) => r.rent ? <Money value={r.rent} /> : '—', footer: <Money value={rent} /> },
    { key: 'paid', header: 'المدفوع', numeric: true, render: (r) => r.rent ? <Money value={r.paid} /> : '—', footer: <Money value={paid} /> },
    { key: 'rem', header: 'المتبقي', numeric: true, render: (r) => r.rent ? <Money value={r.rent - r.paid} tone={r.rent - r.paid ? 'danger' : 'muted'} /> : '—', footer: <Money value={rent - paid} tone="danger" /> },
    { key: 'method', header: 'طريقة الدفع' },
    { key: 'st', header: 'حالة الدفع', render: (r) => <StatusBadge size="sm" status={r.st} /> },
    { key: 'note', header: 'ملاحظات', wrap: true, render: (r) => <>{r.prev > 0 && <span className="kit-prev">متبقٍ سابق <Money value={r.prev} /></span>}{r.follow && <small>متابعة {r.follow}</small>}{r.note && <small>{r.note}</small>}</> },
    { key: 'rc', header: 'الإيصال', render: (r) => r.rc ? <bdi className="ap-num">{r.rc}</bdi> : '—' },
    { key: 'a', header: <span className="ap-sr-only">تحصيل</span>, render: (r) => ['overdue', 'partial'].includes(r.st) ? <Button size="sm" variant="secondary" onClick={() => openPayment(D.today_items[0])}>تحصيل</Button> : null }
  ];
  return (
    <>
      <div className="kit-toolbar" style={{ justifyContent: 'space-between' }}>
        <div style={{ display: 'flex', gap: 10, alignItems: 'center' }}><Select value="2026-09" onChange={() => {}} options={[{ value: '2026-09', label: 'سبتمبر 2026' }, { value: '2026-08', label: 'أغسطس 2026' }]} style={{ width: 170 }} /><span className="kit-scope" style={{ margin: 0 }}>حالة الأرقام حتى {D.today}</span></div>
        <Button variant="secondary" icon="Printer" onClick={() => setPrinting(true)}>طباعة الكشف</Button>
      </div>
      <SummaryStrip style={{ margin: '12px 0' }} items={[
        { label: 'استحقاق الشهر', amount: rent, tone: 'brand', note: occ.length + ' وحدات مؤجرة من ' + rows.length },
        { label: 'المدفوع للشهر', amount: paid, tone: 'success', note: 'يشمل بانتظار التحقق 2,750' },
        { label: 'المتبقي للشهر', amount: rent - paid, tone: 'warning', note: 'وحدتان' },
        { label: 'متبقٍ من أشهر سابقة', amount: prev, tone: 'danger', note: 'منفصل عن استحقاق الشهر' }
      ]} />
      <div className="kit-sheet-table"><DataTable caption={'كشف ' + property.name + ' — سبتمبر 2026'} density="dense" footer rows={rows} rowKey="u" maxHeight={520} columns={cols} /></div>
      <ul className="kit-sheet-cards" aria-label="وحدات الكشف">{rows.map((r) => <li key={r.u}>
        <div className="kit-sc-top"><strong>{r.u}</strong><span>{r.t}</span><StatusBadge size="sm" status={r.st} /></div>
        {r.rent > 0 && <dl><div><dt>الإيجار</dt><dd><Money value={r.rent} /></dd></div><div><dt>المدفوع</dt><dd><Money value={r.paid} /></dd></div><div><dt>المتبقي</dt><dd><Money value={r.rent - r.paid} tone={r.rent - r.paid ? 'danger' : 'muted'} /></dd></div></dl>}
        {(r.prev > 0 || r.note || r.follow) && <p>{r.prev > 0 && <span className="kit-prev">متبقٍ سابق <Money value={r.prev} /></span>} {r.follow && 'متابعة ' + r.follow + ' · '}{r.note}</p>}
        {['overdue', 'partial'].includes(r.st) && <Button size="lg" variant="secondary" block icon="Banknote" onClick={() => openPayment(D.today_items[0])}>تحصيل</Button>}
      </li>)}</ul>
      <Alert tone="neutral" style={{ marginTop: 12 }}>أعمدة الكشف كما في النظام الحالي. تعديلات الأعمدة (SHEET-02) مؤجلة لمراجعة المستخدم. عمود «تحصيل» للشاشة فقط ولا يُطبع.</Alert>
      {printing && <SheetPrint property={property} rows={rows} onClose={() => setPrinting(false)} totals={{ rent, paid, prev }} />}
    </>
  );
}

function SheetPrint({ property, rows, totals, onClose }) {
  const D = window.AP_DATA;
  const { ApdDoc, ApdSums, ApdTable, ApdNote } = window;
  const ST = { confirmed: ['مؤكد', 'ok'], paid: ['مؤكد', 'ok'], pending: ['بانتظار التحقق', null], partial: ['مدفوع جزئيًا', 'bad'], overdue: ['متأخر', 'bad'], vacant: ['شاغرة', 'muted'] };
  const occ = rows.filter((r) => r.st !== 'vacant');
  const pend = rows.filter((r) => r.st === 'pending' || r.st === 'pending_verification').reduce((s, r) => s + r.paid, 0);
  const cols = [{ l: 'الوحدة' }, { l: 'المستأجر' }, { l: 'فترة الدفعة' }, { l: 'قيمة الإيجار', n: 1 }, { l: 'المدفوع', n: 1 }, { l: 'المتبقي', n: 1 }, { l: 'طريقة الدفع' }, { l: 'حالة الدفع' }, { l: 'ملاحظات' }, { l: 'الإيصال' }];
  const body = rows.map((r) => {
    const s = ST[r.st] || [r.st], v = r.st === 'vacant', rem = r.rent - r.paid;
    const notes = [r.prev > 0 && 'متبقٍ سابق ' + window.apdNum(r.prev) + ' ر.س', r.follow && 'متابعة ' + r.follow, r.note].filter(Boolean);
    return [r.u, v ? '—' : r.t, v ? '—' : r.period, v ? null : r.rent, v ? null : r.paid, v ? null : { v: rem, tone: rem ? 'bad' : 'muted' }, v ? '—' : r.method, { v: s[0], tone: s[1] }, notes.length ? { v: notes[0], sub: notes.slice(1).join(' · ') || null, tone: r.prev > 0 ? 'bad' : null } : '', r.rc || '—'];
  });
  return (
    <ApdDoc landscape onClose={onClose} label="طباعة الكشف" kind="كشف شهري" title={'كشف العمارة الشهري — ' + property.name}
      ids={[['الشهر', 'سبتمبر 2026'], ['صدر', D.today]]}
      meta={[['العقار', property.name], ['الوحدات', rows.length + ' · مؤجرة ' + occ.length], ['الجهة المصدرة', D.org]]}
      sign={['أعده', 'راجعه', 'المالك']}
      foot="حالة الأرقام حتى تاريخ الإصدار. مستند تشغيلي وليس فاتورة ضريبية.">
      <ApdSums items={[['استحقاق الشهر', totals.rent], ['المدفوع للشهر', totals.paid, 'ok'], ['منه بانتظار التحقق', pend, 'warn'], ['المتبقي للشهر', totals.rent - totals.paid, 'bad'], ['متبقٍ من أشهر سابقة', totals.prev, 'key']]} />
      <ApdTable cols={cols} rows={body} foot={[null, 'الإجمالي', null, totals.rent, totals.paid, { v: totals.rent - totals.paid, tone: 'bad' }, null, null, null, null]} />
      <ApdNote>المتبقي من أشهر سابقة (<bdi>{window.apdNum(totals.prev)}</bdi> ر.س) غير داخل في إجمالي الشهر.</ApdNote>
    </ApdDoc>
  );
}

Object.assign(window, { BuildingSheet });

})();
