Program ROI
${document.getElementById('programROI').textContent}
`;
configHtml += `
`;
document.getElementById('pdf-config').innerHTML = configHtml;
const tableClone = document.querySelector('table').cloneNode(true);
tableClone.classList.add("w-full", "text-xs");
document.getElementById('pdf-table-container').innerHTML = '';
document.getElementById('pdf-table-container').appendChild(tableClone);
const reportEl = document.getElementById('pdf-report');
reportEl.classList.remove('hidden');
const canvas = await html2canvas(reportEl, { scale: 2 });
reportEl.classList.add('hidden');
const imgData = canvas.toDataURL('image/png');
const { jsPDF } = window.jspdf;
const pdf = new jsPDF({ orientation: 'p', unit: 'in', format: 'letter' });
const pdfWidth = pdf.internal.pageSize.getWidth();
const pdfHeight = (canvas.height * pdfWidth) / canvas.width;
pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight);
pdf.save('Affiliate-Program-Analysis.pdf');
}
function initialize() {
renderCommissionInputs();
setupEventListeners();
updateUI();
}
initialize();
});
Tiers: ${programConfig.tierCount}
`; for(let i = 1; i <= programConfig.tierCount; i++) { configHtml += `Tier ${i} Commission: ${programConfig.commissions[i]}%
`; } configHtml += `Base Affiliates: ${programConfig.baseAffiliates}
`; configHtml += `Sales/Affiliate: ${programConfig.salesPerAffiliate}
`; configHtml += `Recruits/Affiliate: ${programConfig.recruitsPerAffiliate}
`; configHtml += `Avg. Sale Value: $${programConfig.avgSaleValue}
`; configHtml += `