- Shipped
- October 6, 2026 at 12:27 AM UTC
- Author
- Kamo
- Commit
- b743bfb
Lead.vendorProduct is @Transient — only VENDOR_PRODUCT_ID is a column — so nothing loads it unless someone asks, and LeadDTO.fromLead then leaves vendorProduct, vendor and product out. The grid asks **************** 2026-08-20); GET /api/security/leads/{id} never did, so the lead page showed "---" beside Vendor and Product on every lead in every org. Reported on Harmony Home Loans lead 1200096283021650986 ("Online Loan Application"), whose product "HarmonyHomeLoans.net (Short)" and vendor "Harmony" are in the database. **************** loads it with findByIdWithVendor (vendor eager, nothing past it — not findById's 8-way chain, see isFreeForAllLead), naming only a product whose vendor is in the caller's org, before each single-lead DTO: GET, PUT (the page replaces its lead with that answer after every edit and reassignment, so a save would blank them again), and POST/DELETE /{id}/account. Fails soft: the page renders without the two rows, as before. Tests: LeadControllerVendorProductTest — GET and PUT name both (RED: vendorProduct null), another org's product is not named, no product costs no lookup, a loaded product is not reloaded. LeadController*Test 54/54; full suite 4631 run, 0 failures, 1 skipped.
