-
DevPilot authored
The rent could be invoiced but not collected. `payInvoice` required a `payment_id` that already existed, and the form asked the accountant to type "رقم الدفعة من النظام" — a number they had no way to obtain, because nothing on this screen created a payment. So a generated invoice could never be settled. `collectInvoice` takes the money properly: pick the treasury, the method and the date, and it writes the payment against that treasury, then settles the invoice through the same RentalInvoiceService::markPaid the old path used — so the late fee is still calculated from the due date and the journal entry is unchanged. payInvoice is left in place for the case it was built for: a cashier who already raised the receipt and has its number. Verified end to end on a production clone: contract approved, 12 monthly invoices generated on the contract's own payment_due_day, one collected into «الخزنة الرئيسية», and the entry posted Dr الصندوق / Cr إيجار محلات + ض.ق.م with the trial balance still at 0.00. Co-Authored-By:Claude Opus 5 <noreply@anthropic.com>
758eaebf