(function(){
function fmt(n){return '$'+(n||0).toLocaleString('es-MX',{minimumFractionDigits:2,maximumFractionDigits:2});}
var params=new URLSearchParams(window.location.search);
var iid=parseInt(params.get('id'));
if(!iid){document.getElementById('inv-header').innerHTML='ID no proporcionado';return;}
fetch('/web/dataset/call_kw',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({jsonrpc:'2.0',method:'call',id:2,params:{model:'x_inversiones',method:'read',args:[[iid],['x_name','x_studio_inversionista','x_studio_monto_inversion','x_studio_tasa_rendimiento_','x_studio_plazo_meses','x_studio_fecha_inicio','x_studio_fecha_vencimiento','x_studio_estado_inversion','x_studio_rendimiento_acumulado','x_studio_tasa_isr','x_studio_value']],kwargs:{}}})})
.then(function(r){return r.json();})
.then(function(d){
if(!d.result||!d.result.length){document.getElementById('inv-header').innerHTML='Inversion no encontrada.';return;}
var inv=d.result[0];
var monto=inv.x_studio_monto_inversion||0;
var rendAcum=inv.x_studio_rendimiento_acumulado||0;
var tasa=inv.x_studio_tasa_rendimiento_||0;
var plazo=inv.x_studio_plazo_meses||0;
var estado=inv.x_studio_estado_inversion||'N/A';
var tasaIsr=inv.x_studio_tasa_isr||0;
var fechaIni=inv.x_studio_fecha_inicio||'';
var fechaVenc=inv.x_studio_fecha_vencimiento||'';
var prog=plazo>0?Math.round(((new Date()-new Date(fechaIni))/(new Date(fechaVenc)-new Date(fechaIni)))*100):0;
if(prog<0)prog=0;if(prog>100)prog=100;
var L='\x3c',R='\x3e';
var h=L+'div style="background:linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);border-radius:16px;padding:28px;margin-bottom:24px;"'+R;
h+=L+'h2 style="color: #1E3A5F;margin:0 0 4px;"'+R+inv.x_name+L+'/h2'+R;
h+=L+'p style="color:#a5d6a7;margin:0 0 20px;"'+R+((inv.x_studio_inversionista&&inv.x_studio_inversionista[1])||'')+L+'/p'+R;
h+=L+'div style="display:grid;grid-template-columns:repeat(3,1fr);gap:12px;"'+R;
function mc(label,value,color){return L+'div style="background:rgba(255,255,255,0.1);border-radius:10px;padding:14px;text-align:center;"'+R+L+'div style="color:#a5d6a7;font-size:12px;"'+R+label+L+'/div'+R+L+'div style="color:'+color+';font-size:20px;font-weight:700;"'+R+value+L+'/div'+R+L+'/div'+R;}
h+=mc('MONTO INVERSION',fmt(monto),'#fff');
h+=mc('RENDIMIENTO ACUM.',fmt(rendAcum),'#69f0ae');
h+=mc('TASA RENDIMIENTO',tasa+'%','#fff');
h+=mc('PLAZO',plazo+' meses','#fff');
h+=mc('TASA ISR',tasaIsr+'%','#fff');
h+=mc('ESTADO',estado,'#69f0ae');
h+=L+'/div'+R;
h+=L+'div style="margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:12px;"'+R;
h+=L+'div style="background:rgba(255,255,255,0.08);border-radius:8px;padding:10px 14px;"'+R+L+'span style="color:#a5d6a7;font-size:12px;"'+R+'Fecha Inicio'+L+'/span'+R+L+'div style="color: #1E3A5F;font-size:15px;"'+R+fechaIni+L+'/div'+R+L+'/div'+R;
h+=L+'div style="background:rgba(255,255,255,0.08);border-radius:8px;padding:10px 14px;"'+R+L+'span style="color:#a5d6a7;font-size:12px;"'+R+'Fecha Vencimiento'+L+'/span'+R+L+'div style="color: #1E3A5F;font-size:15px;"'+R+fechaVenc+L+'/div'+R+L+'/div'+R;
h+=L+'/div'+R;
h+=L+'div style="margin-top:16px;"'+R+L+'div style="display:flex;justify-content:space-between;color:#a5d6a7;font-size:13px;margin-bottom:4px;"'+R+L+'span'+R+'Avance del plazo'+L+'/span'+R+L+'span'+R+prog+'%'+L+'/span'+R+L+'/div'+R;
h+=L+'div style="background:rgba(255,255,255,0.15);border-radius:8px;height:10px;overflow:hidden;"'+R+L+'div style="background:linear-gradient(90deg,#66bb6a,#a5d6a7);height:100%;border-radius:8px;width:'+prog+'%;"'+R+L+'/div'+R+L+'/div'+R+L+'/div'+R;
h+=L+'/div'+R;
document.getElementById('inv-header').innerHTML=h;
document.getElementById('inv-title').textContent=inv.x_name;
fetch('/web/dataset/call_kw',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({jsonrpc:'2.0',method:'call',id:3,params:{model:'x_rendimiento',method:'search_read',args:[[['x_studio_inversion','=',iid]],['x_name','x_studio_numero_periodo','x_studio_date','x_studio_monto_referencia','x_studio_tasa_aplicada_','x_studio_dias_periodo','x_studio_rendimiento_devengado','x_studio_isr_retenido','x_studio_rendimiento_neto','x_studio_estado_linea']],kwargs:{order:'x_studio_numero_periodo asc'}}})})
.then(function(r){return r.json();})
.then(function(rd){
var rows=rd.result||[];
if(!rows.length){document.getElementById('rend-table').innerHTML='Sin tabla de rendimientos';return;}
var today=new Date().toISOString().slice(0,10);
var L='\x3c',R='\x3e';
var tb=L+'table style="width:100%;border-collapse:collapse;font-size:13px;"'+R;
tb+=L+'thead'+R+L+'tr style="background: #f1f5f9;color: #1E3A5F;"'+R+L+'th style="padding:10px 8px;"'+R+'#'+L+'/th'+R+L+'th style="padding:10px 8px;"'+R+'Fecha'+L+'/th'+R+L+'th style="padding:10px 8px;text-align:right;"'+R+'Monto Ref.'+L+'/th'+R+L+'th style="padding:10px 8px;text-align:right;"'+R+'Tasa'+L+'/th'+R+L+'th style="padding:10px 8px;text-align:center;"'+R+'Dias'+L+'/th'+R+L+'th style="padding:10px 8px;text-align:right;"'+R+'Rendimiento'+L+'/th'+R+L+'th style="padding:10px 8px;text-align:right;"'+R+'ISR'+L+'/th'+R+L+'th style="padding:10px 8px;text-align:right;"'+R+'Neto'+L+'/th'+R+L+'th style="padding:10px 8px;text-align:center;"'+R+'Estado'+L+'/th'+R+L+'/tr'+R+L+'/thead'+R+L+'tbody'+R;
rows.forEach(function(r,i){
var est=(r.x_studio_estado_linea||'Pendiente');
var isPagado=est.toLowerCase().indexOf('pagado')>=0;
var isVencido=!isPagado&&r.x_studio_date&&today>r.x_studio_date;
var bg=isPagado?'rgba(76,175,80,0.15)':isVencido?'rgba(244,67,54,0.15)':(i%2===0?'transparent':'rgba(255,255,255,0.03)');
var badge=isPagado?L+'span style="background:#4caf50;color: #1E3A5F;padding:2px 10px;border-radius:12px;font-size:11px;"'+R+'Pagado'+L+'/span'+R:isVencido?L+'span style="background:#f44336;color: #1E3A5F;padding:2px 10px;border-radius:12px;font-size:11px;"'+R+'Vencido'+L+'/span'+R:L+'span style="background:#ff9800;color: #1E3A5F;padding:2px 10px;border-radius:12px;font-size:11px;"'+R+'Pendiente'+L+'/span'+R;
tb+=L+'tr style="background:'+bg+';border-bottom:1px solid rgba(255,255,255,0.06);"'+R+L+'td style="padding:8px;color: #1E3A5F;"'+R+r.x_studio_numero_periodo+L+'/td'+R+L+'td style="padding:8px;color:#ccc;"'+R+(r.x_studio_date||'')+L+'/td'+R+L+'td style="padding:8px;color: #1E3A5F;text-align:right;"'+R+fmt(r.x_studio_monto_referencia)+L+'/td'+R+L+'td style="padding:8px;color: #1E3A5F;text-align:right;"'+R+(r.x_studio_tasa_aplicada_||0)+'%'+L+'/td'+R+L+'td style="padding:8px;color: #1E3A5F;text-align:center;"'+R+(r.x_studio_dias_periodo||0)+L+'/td'+R+L+'td style="padding:8px;color:#69f0ae;text-align:right;"'+R+fmt(r.x_studio_rendimiento_devengado)+L+'/td'+R+L+'td style="padding:8px;color:#ef5350;text-align:right;"'+R+fmt(r.x_studio_isr_retenido)+L+'/td'+R+L+'td style="padding:8px;color: #1E3A5F;text-align:right;font-weight:700;"'+R+fmt(r.x_studio_rendimiento_neto)+L+'/td'+R+L+'td style="padding:8px;text-align:center;"'+R+badge+L+'/td'+R+L+'/tr'+R;
});
tb+=L+'/tbody'+R+L+'/table'+R;
document.getElementById('rend-table').innerHTML=tb;
});
});
})();