feat(rentals): collect a rental invoice into a treasury from the invoice screen
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>
Showing
Please register or sign in to comment