// ── LOAN TRACKER INTEGRATION ────────────────────────────────────────────── function promptLoanEntry(dealId){ const deal=deals.find(d=>d.id===dealId);if(!deal)return; const d=deal.data||{}; const isFlip=!d.dealType||d.dealType==='flip'; // Build prefill params from linked analysis if available let params={address:d.address||'',type:isFlip?'hard-money':'dscr'}; const analysisList=isFlip?flipAnalyses:brrrrAnalyses; const linked=d.linkedAnalysisId?analysisList.find(r=>r.id===d.linkedAnalysisId):null; if(linked){ const ld=linked.data||{}; if(!isFlip){ // BRRRR — fill bridge/hard money first params.lender=ld.lender||''; params.rate=ld.hmRate||''; params.term=ld.rehabMonths?String(Math.ceil(ld.rehabMonths/12)):'1'; params.balance=(ld.purchase||0)+(ld.closing||0)+(ld.rehab||0); } else { params.rate=ld.hmRate||''; params.term='1'; params.balance=d.maxOffer||ld.maxOffer||''; params.lender=''; } } // Show prompt modal const go=confirm( '\u2705 Deal moved to Under Contract!\n\n' + 'Would you like to log the loan details in Loan Tracker?\n\n' + 'Address: '+(params.address||'—')+'\n' + 'Loan Type: '+(isFlip?'Hard Money / Bridge':'DSCR Rental')+'\n' + (params.rate?'Rate: '+params.rate+'%\n':'') + '\nThis will open Loan Tracker with the details pre-filled.' ); if(!go)return; // Build URL with prefill params const qs=new URLSearchParams(); Object.entries(params).forEach(([k,v])=>{if(v)qs.set(k,v);}); window.open('/loan-tracker?'+qs.toString(),'_blank'); }