• DevPilot's avatar
    fix(rentals): make the contract cycle visible on the contract page · 108ebc7d
    DevPilot authored
    Asked how to make a contract live, and the honest answer was that you could not
    find out from the screen — so the screen now says it.
    
    The approve card was shown only when status was exactly 'pending_approval'. A
    contract created from the form lands on 'draft' (the controller even defaults to
    'pending', which is not in the status list at all), so the one button that makes
    a contract live was invisible on precisely the contracts that needed it. It now
    appears for draft, pending and pending_approval.
    
    Added a four-step tracker across the top — العقد اتسجّل ← اعتماد العقد ← توليد
    الفواتير ← تحصيل الفاتورة — with the ticks reflecting real state and a line
    naming the single next action and where its button is. Underneath it, in words:
    which day of the month this contract's invoices fall due, read from the
    contract's own payment_due_day rather than assumed to be the 5th, that a short
    month pulls it back to the last day, and that the late fee is computed from the
    due date automatically.
    
    Invoice rows now carry a تحصيل button straight to the collection form when they
    are unpaid, instead of a عرض link that gave no hint the money is taken there.
    
    Verified rendered in draft, approved and active: the next-step line changes with
    state, the due day reads from the contract, and 11 unpaid rows show تحصيل while
    the paid one shows عرض.
    Co-Authored-By: 's avatarClaude Opus 5 <noreply@anthropic.com>
    108ebc7d
Name
Last commit
Last update
..
Core Loading commit data...
Middleware Loading commit data...
Modules Loading commit data...
Shared Loading commit data...