-
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:Claude Opus 5 <noreply@anthropic.com>
108ebc7d