• DevPilot's avatar
    feat(rentals): collect a rental invoice into a treasury from the invoice screen · 758eaebf
    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: 's avatarClaude Opus 5 <noreply@anthropic.com>
    758eaebf
Name
Last commit
Last update
..
Core Loading commit data...
Middleware Loading commit data...
Modules Loading commit data...
Shared Loading commit data...