• 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
..
Controllers Loading commit data...
Models Loading commit data...
Services Loading commit data...
Views Loading commit data...
Routes.php Loading commit data...
bootstrap.php Loading commit data...