{"id":171,"date":"2026-05-13T10:22:28","date_gmt":"2026-05-13T10:22:28","guid":{"rendered":"https:\/\/cashchat.se\/dir\/?page_id=171"},"modified":"2026-05-13T10:22:28","modified_gmt":"2026-05-13T10:22:28","slug":"excel","status":"publish","type":"page","link":"https:\/\/cashchat.se\/dir\/excel\/","title":{"rendered":"Excel"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\">\n    <title>Adase Ads Ltd \u2013 Complete Suite + URA Income\/Expense with Categories<\/title>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:opsz,wght@14..32,300;400;500;600;700&#038;display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0-beta3\/css\/all.min.css\">\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2canvas\/1.4.1\/html2canvas.min.js\"><\/script>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\n    <script src=\"https:\/\/cdn.sheetjs.com\/xlsx-0.20.2\/package\/dist\/xlsx.full.min.js\"><\/script>\n    <style>\n        * { margin: 0; padding: 0; box-sizing: border-box; }\n        body {\n            background: #f0f4fa;\n            font-family: 'Inter', sans-serif;\n            padding: 1.5rem;\n            color: #1e2a3a;\n        }\n        .container { max-width: 1400px; margin: 0 auto; }\n        h1 { font-size: 1.8rem; font-weight: 800; background: linear-gradient(135deg, #0b2b44, #1f7ca8); -webkit-background-clip: text; background-clip: text; color: transparent; }\n        .subhead { color: #2c5a74; border-left: 3px solid #e9b35f; padding-left: 1rem; margin: 0.5rem 0 1.5rem; }\n        .tabs {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 0.5rem;\n            margin-bottom: 1.8rem;\n            border-bottom: 2px solid #cfdfed;\n            padding-bottom: 0.5rem;\n        }\n        .tab-btn {\n            background: white;\n            border: none;\n            padding: 0.6rem 1.2rem;\n            border-radius: 40px;\n            font-weight: 600;\n            cursor: pointer;\n            transition: 0.2s;\n            font-size: 0.8rem;\n            color: #1f4e6e;\n        }\n        .tab-btn.active { background: #1f7ca8; color: white; box-shadow: 0 4px 12px rgba(31,124,168,0.3); }\n        .tab-pane { display: none; animation: fade 0.2s; }\n        .tab-pane.active-pane { display: block; }\n        @keyframes fade { from { opacity: 0; } to { opacity: 1; } }\n        .grid {\n            display: grid;\n            grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));\n            gap: 1.5rem;\n        }\n        .card {\n            background: white;\n            border-radius: 28px;\n            box-shadow: 0 8px 20px rgba(0,0,0,0.05);\n            overflow: hidden;\n        }\n        .card-header {\n            background: #fafcfd;\n            padding: 1rem 1.2rem;\n            font-weight: 700;\n            font-size: 1.1rem;\n            border-bottom: 1px solid #e6edf4;\n            display: flex;\n            align-items: center;\n            gap: 8px;\n        }\n        .card-body { padding: 1.2rem; }\n        label { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; color: #2c6280; display: block; margin-top: 0.5rem; }\n        input, textarea, select {\n            width: 100%;\n            padding: 0.6rem 0.8rem;\n            border: 1px solid #cbdde9;\n            border-radius: 18px;\n            font-family: 'Inter', monospace;\n            font-size: 0.85rem;\n            margin-top: 4px;\n        }\n        textarea { min-height: 80px; resize: vertical; }\n        .btn-group { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }\n        .btn {\n            border: none;\n            background: #eef2f7;\n            padding: 0.45rem 1rem;\n            border-radius: 40px;\n            font-size: 0.7rem;\n            font-weight: 600;\n            cursor: pointer;\n            display: inline-flex;\n            align-items: center;\n            gap: 6px;\n        }\n        .btn-pdf { background: #bc4e2c; color: white; }\n        .btn-png { background: #376b8f; color: white; }\n        .btn-excel { background: #2a6e4b; color: white; }\n        .btn-primary { background: #1f7ca8; color: white; }\n        .btn-danger { background: #b91c1c; color: white; }\n        .pitch-slide { background: #f9fafc; border-radius: 20px; margin-bottom: 1rem; padding: 1rem; border: 1px solid #e2e8f0; }\n        .transaction-table {\n            width: 100%;\n            border-collapse: collapse;\n            font-size: 0.75rem;\n            margin-top: 1rem;\n        }\n        .transaction-table th, .transaction-table td {\n            border: 1px solid #cbdde9;\n            padding: 0.5rem;\n            text-align: left;\n        }\n        .transaction-table th {\n            background: #eef2f7;\n            font-weight: 600;\n        }\n        .summary-stats {\n            background: #eef2f7;\n            border-radius: 20px;\n            padding: 0.8rem;\n            margin-bottom: 1rem;\n            display: flex;\n            flex-wrap: wrap;\n            gap: 1rem;\n            justify-content: space-between;\n        }\n        .stat {\n            font-size: 0.85rem;\n            font-weight: 700;\n        }\n        .footer-note { margin-top: 2rem; text-align: center; font-size: 0.7rem; color: #5f7d9c; }\n        @media (max-width: 700px) { .grid { grid-template-columns: 1fr; } .transaction-table { font-size: 0.65rem; } }\n    <\/style>\n<\/head>\n<body>\n<div class=\"container\">\n    <h1><i class=\"fas fa-database\"><\/i> Adase Ads Ltd \u2013 Complete Document Universe<\/h1>\n    <div class=\"subhead\">All documents + URA\u2011compliant Income\/Expense Manager <\/div>\n\n    <div class=\"tabs\" id=\"tabHeaders\"><\/div>\n    <div id=\"tabContent\"><\/div>\n    <div class=\"footer-note\">\u2714 Income &#038; Expense records stored locally. URA standards: VAT, TIN, pre\u2011defined categories. Export to Excel.<\/div>\n<\/div>\n\n<script>\n    \/\/ ---------- Helper functions (same as before) ----------\n    window.downloadCert = async function(type, format) {\n        let fields = {};\n        if(type === 'share') {\n            fields = { name: document.getElementById('shareName')?.value || 'John M. Investor', qty: document.getElementById('shareQty')?.value || '10,000', certNo: document.getElementById('shareCertNo')?.value || 'AD-001', date: document.getElementById('shareDate')?.value || new Date().toISOString().slice(0,10) };\n        } else if(type === 'note') {\n            fields = { name: document.getElementById('noteHolderName')?.value || 'Capital Partners', noteNum: document.getElementById('noteNumber')?.value || 'CN-009', principal: document.getElementById('notePrincipal')?.value || '250,000', maturity: document.getElementById('noteMaturity')?.value || '2028-12-31' };\n        } else return;\n        const wrapper = document.createElement('div');\n        wrapper.style.width = \"800px\"; wrapper.style.background = \"#fffcf0\"; wrapper.style.padding = \"30px\"; wrapper.style.position = \"relative\"; wrapper.style.border = \"2px solid #d4af37\"; wrapper.style.fontFamily = \"'Times New Roman', serif\";\n        wrapper.innerHTML = `<div style=\"text-align:center\"><div style=\"font-size:12px;\">ADASE ADS LTD<\/div><div style=\"font-size:28px; font-weight:bold;\">${type==='share'?'SHARE CERTIFICATE':'NOTEHOLDER CERTIFICATE'}<\/div><\/div>\n        <div style=\"margin:30px 0\"><p>This certifies that <strong>${fields.name}<\/strong> is the registered holder of ${type==='share'?fields.qty+' ordinary shares (Cert. '+fields.certNo+') issued '+fields.date : 'Convertible Note '+fields.noteNum+' Principal USD '+fields.principal+' Maturity '+fields.maturity}.<\/p><p>Given under seal this ${new Date().toLocaleDateString()}.<\/p><\/div>\n        <div style=\"display:flex; justify-content:space-between;\"><span>_____________________<br\/>Director<\/span><span>_____________________<br\/>Secretary<\/span><\/div>`;\n        const sealDiv = document.createElement('div'); sealDiv.style.cssText=\"position:absolute; bottom:30px; right:30px; width:90px; height:90px; border-radius:50%; border:3px double #b8860b; display:flex; align-items:center; justify-content:center; flex-direction:column; background:rgba(218,165,32,0.1);\";\n        sealDiv.innerHTML = `<span style=\"font-size:9px; font-weight:bold;\">ADASE ADS LTD<\/span><span>\u25cf SEAL \u25cf<\/span><span> Uganda<\/span>`;\n        wrapper.appendChild(sealDiv);\n        document.body.appendChild(wrapper);\n        const canvas = await html2canvas(wrapper, { scale: 3, backgroundColor: '#fffcf0' });\n        document.body.removeChild(wrapper);\n        if(format === 'png'){ let a=document.createElement('a'); a.href=canvas.toDataURL(); a.download=`${type}_certificate.png`; a.click(); }\n        else { const {jsPDF} = window.jspdf; const pdf = new jsPDF({unit:'mm',format:'a4'}); pdf.addImage(canvas.toDataURL('image\/png'),'PNG',10,10,190, (canvas.height*190\/canvas.width)); pdf.save(`${type}_certificate.pdf`); }\n    };\n    window.downloadTextAsPDF = async function(elementId, filename) {\n        const text = document.getElementById(elementId)?.value || '';\n        const wrap = document.createElement('div'); wrap.style.padding='1.5rem'; wrap.style.fontFamily='Inter'; wrap.style.whiteSpace='pre-wrap'; wrap.innerText = text; document.body.appendChild(wrap);\n        const canvas = await html2canvas(wrap, { scale: 2 }); document.body.removeChild(wrap);\n        const {jsPDF}=window.jspdf; const pdf=new jsPDF(); pdf.addImage(canvas.toDataURL(),'PNG',10,10,180,0); pdf.save(`${filename}.pdf`);\n    };\n    window.downloadElementAsPNG = async function(elementId, filename) {\n        const text = document.getElementById(elementId)?.value || '';\n        const wrap = document.createElement('div'); wrap.style.padding='1rem'; wrap.style.background='white'; wrap.innerText = text; document.body.appendChild(wrap);\n        const canvas = await html2canvas(wrap); document.body.removeChild(wrap);\n        let a=document.createElement('a'); a.href=canvas.toDataURL(); a.download=`${filename}.png`; a.click();\n    };\n    window.exportExcel = (data, filename) => { const ws = XLSX.utils.aoa_to_sheet(data); const wb = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(wb, ws, \"Sheet1\"); XLSX.writeFile(wb, `${filename}.xlsx`); };\n    \n    \/\/ Pitch deck\n    let slideCounter = 0;\n    window.addPitchSlide = function(containerId, title = \"New Slide\", content = \"Add your content here\"){\n        const container = document.getElementById(containerId);\n        if(!container) return;\n        const slideId = `slide_${Date.now()}_${slideCounter++}`;\n        const div = document.createElement('div'); div.className = 'pitch-slide'; div.setAttribute('data-id', slideId);\n        div.innerHTML = `<div style=\"display:flex; justify-content:space-between;\"><strong>Slide ${slideCounter}<\/strong><button class=\"btn btn-primary\" style=\"background:#b91c1c;\" onclick=\"this.closest('.pitch-slide').remove()\">Remove<\/button><\/div>\n        <label>Title<\/label><input type=\"text\" class=\"pitch-title\" value=\"${title.replace(\/\"\/g, '&quot;')}\">\n        <label>Content<\/label><textarea rows=\"3\" class=\"pitch-content\">${content}<\/textarea>`;\n        container.appendChild(div);\n    };\n    window.exportPitchDeckPDF = async function() {\n        const slides = document.querySelectorAll('#pitchSlidesContainer .pitch-slide');\n        if(!slides.length) return;\n        const {jsPDF}=window.jspdf; const pdf = new jsPDF({unit:'mm',format:'a4'});\n        for(let i=0;i<slides.length;i++){\n            const clone = slides[i].cloneNode(true); clone.style.width=\"800px\"; clone.style.background=\"white\"; clone.style.padding=\"20px\"; clone.style.margin=\"0 auto\";\n            document.body.appendChild(clone);\n            const canvas = await html2canvas(clone, {scale:2.5});\n            document.body.removeChild(clone);\n            if(i!==0) pdf.addPage();\n            pdf.addImage(canvas.toDataURL(),'PNG',10,10,190, (canvas.height*190\/canvas.width));\n        }\n        pdf.save('Adase_Pitch_Deck.pdf');\n    };\n\n    \/\/ ---------- Income\/Expense Manager with Category Dropdown ----------\n    let transactions = [];\n    const STORAGE_KEY = 'adase_finance_records';\n    function loadTransactions() {\n        const stored = localStorage.getItem(STORAGE_KEY);\n        if(stored) transactions = JSON.parse(stored);\n        else transactions = [];\n        renderTransactionTable();\n        updateSummary();\n    }\n    function saveTransactions() {\n        localStorage.setItem(STORAGE_KEY, JSON.stringify(transactions));\n    }\n    function addTransaction(event) {\n        event.preventDefault();\n        const date = document.getElementById('txnDate').value;\n        const type = document.getElementById('txnType').value;\n        const desc = document.getElementById('txnDesc').value;\n        const amount = parseFloat(document.getElementById('txnAmount').value);\n        const vatAmount = parseFloat(document.getElementById('txnVat').value) || 0;\n        const category = document.getElementById('txnCategorySelect').value;\n        const tin = document.getElementById('companyTin').value || '80034558417273';\n        if(!date || !desc || isNaN(amount) || amount <= 0) {\n            alert(\"Please fill all required fields (Date, Description, positive Amount)\");\n            return;\n        }\n        const newRecord = {\n            id: Date.now(),\n            date, type, description: desc, amount, vatAmount, category, tin,\n            totalAmount: type === 'Income' ? amount + vatAmount : amount + vatAmount\n        };\n        transactions.push(newRecord);\n        saveTransactions();\n        renderTransactionTable();\n        updateSummary();\n        document.getElementById('financeForm').reset();\n        document.getElementById('txnVat').value = 0;\n        document.getElementById('txnCategorySelect').value = \"Sales Revenue\"; \/\/ default\n    }\n    function deleteTransaction(id) {\n        transactions = transactions.filter(t => t.id !== id);\n        saveTransactions();\n        renderTransactionTable();\n        updateSummary();\n    }\n    function editTransaction(id) {\n        const txn = transactions.find(t => t.id === id);\n        if(!txn) return;\n        document.getElementById('txnDate').value = txn.date;\n        document.getElementById('txnType').value = txn.type;\n        document.getElementById('txnDesc').value = txn.description;\n        document.getElementById('txnAmount').value = txn.amount;\n        document.getElementById('txnVat').value = txn.vatAmount;\n        document.getElementById('txnCategorySelect').value = txn.category;\n        deleteTransaction(id);\n        alert(\"Edit the values and click 'Add Record' to save changes\");\n    }\n    function renderTransactionTable() {\n        const tbody = document.getElementById('transactionTableBody');\n        if(!tbody) return;\n        tbody.innerHTML = '';\n        transactions.sort((a,b) => new Date(b.date) - new Date(a.date));\n        transactions.forEach(t => {\n            const row = tbody.insertRow();\n            row.insertCell(0).innerText = t.date;\n            row.insertCell(1).innerText = t.type;\n            row.insertCell(2).innerText = t.description;\n            row.insertCell(3).innerText = `UGX ${t.amount.toFixed(0)}`;\n            row.insertCell(4).innerText = `UGX ${t.vatAmount.toFixed(0)}`;\n            row.insertCell(5).innerText = t.category;\n            row.insertCell(6).innerHTML = `<button class=\"btn btn-primary\" style=\"background:#2c5f8a;\" onclick=\"editTransaction(${t.id})\">Edit<\/button> <button class=\"btn btn-danger\" onclick=\"deleteTransaction(${t.id})\">Del<\/button>`;\n        });\n    }\n    function updateSummary() {\n        let totalIncome = 0, totalExpense = 0, totalVatCollected = 0, totalVatPaid = 0;\n        transactions.forEach(t => {\n            if(t.type === 'Income') {\n                totalIncome += t.amount;\n                totalVatCollected += t.vatAmount;\n            } else {\n                totalExpense += t.amount;\n                totalVatPaid += t.vatAmount;\n            }\n        });\n        const netVat = totalVatCollected - totalVatPaid;\n        document.getElementById('summaryIncome').innerText = `Total Income: UGX ${totalIncome.toFixed(0)}`;\n        document.getElementById('summaryExpense').innerText = `Total Expenses: UGX ${totalExpense.toFixed(0)}`;\n        document.getElementById('summaryNet').innerText = `Net Profit (before tax): UGX ${(totalIncome - totalExpense).toFixed(0)}`;\n        document.getElementById('summaryVat').innerText = `VAT Payable (18% standard): UGX ${netVat > 0 ? netVat.toFixed(0) : 0} | Refundable: UGX ${netVat < 0 ? (-netVat).toFixed(0) : 0}`;\n    }\n    function exportTransactionsToExcel() {\n        const data = [['Date', 'Type', 'Description', 'Amount (UGX)', 'VAT (UGX)', 'Category', 'TIN']];\n        transactions.forEach(t => {\n            data.push([t.date, t.type, t.description, t.amount, t.vatAmount, t.category, t.tin || '80034558417273']);\n        });\n        const ws = XLSX.utils.aoa_to_sheet(data);\n        const wb = XLSX.utils.book_new();\n        XLSX.utils.book_append_sheet(wb, ws, 'Income_Expense_Records');\n        XLSX.writeFile(wb, `Adase_Financial_Records_${new Date().toISOString().slice(0,10)}.xlsx`);\n    }\n\n    \/\/ ---------- Categories ----------\n    const categoriesList = [\n        \"Sales Revenue\", \"Advertising Income\", \"AI Credits Income\", \"Virtual Gifts Commission\", \"Membership Fees\",\n        \"Agent Commission Expense\", \"Hosting & Cloud Costs\", \"Marketing & Promotion\", \"Salaries & Wages\",\n        \"Legal & Professional Fees\", \"Rent & Utilities\", \"Software & AI Subscriptions\", \"Office Supplies\",\n        \"Payment Gateway Fees\", \"Tax & Licenses\", \"Travel & Entertainment\", \"Depreciation\", \"Interest Expense\",\n        \"Other Income\", \"Other Expense\"\n    ];\n\n    \/\/ Build the dropdown HTML string\n    function getCategoryOptions(selected) {\n        let html = '';\n        categoriesList.forEach(cat => {\n            html += `<option value=\"${cat}\" ${selected === cat ? 'selected' : ''}>${cat}<\/option>`;\n        });\n        return html;\n    }\n\n    \/\/ ---------- Tabs and Panes ----------\n    const categoriesTabs = [\"certs\",\"biz\",\"pitch\",\"equity\",\"conv\",\"security\",\"gov\",\"fin\",\"ir\",\"ref\",\"faq\",\"terms\"];\n    const names = {\n        certs:\"\ud83c\udfc5 Certificates\", biz:\"\ud83d\udcc7 Business\", pitch:\"\ud83c\udfaf Pitch Deck\", equity:\"\u2696\ufe0f Equity\",\n        conv:\"\ud83d\udcdc Convertible Notes\", security:\"\ud83d\udd12 Security\", gov:\"\ud83c\udfdb Governance\", fin:\"\ud83d\udcca Financial & Excel\",\n        ir:\"\ud83d\udce7 Investor Relations\", ref:\"\ud83d\udcda Reference\", faq:\"\u2753 FAQ\", terms:\"\ud83d\udcdc Terms\"\n    };\n    const tabsContainer = document.getElementById('tabHeaders');\n    const contentContainer = document.getElementById('tabContent');\n    categoriesTabs.forEach((cat, idx) => {\n        const btn = document.createElement('button');\n        btn.className = `tab-btn ${idx===0 ? 'active' : ''}`;\n        btn.innerText = names[cat];\n        btn.onclick = () => {\n            document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active'));\n            btn.classList.add('active');\n            document.querySelectorAll('.tab-pane').forEach(p => p.classList.remove('active-pane'));\n            document.getElementById(`pane_${cat}`).classList.add('active-pane');\n        };\n        tabsContainer.appendChild(btn);\n        const pane = document.createElement('div');\n        pane.id = `pane_${cat}`;\n        pane.className = `tab-pane ${idx===0 ? 'active-pane' : ''}`;\n        contentContainer.appendChild(pane);\n    });\n\n    function populateAllPanes() {\n        \/\/ Minimal content for other panes (for brevity, same as before)\n        document.getElementById('pane_certs').innerHTML = `<div class=\"grid\"><div class=\"card\"><div class=\"card-header\">Share Certificate<\/div><div class=\"card-body\"><label>Shareholder<\/label><input id=\"shareName\" value=\"John Investor\"><label>Shares<\/label><input id=\"shareQty\" value=\"10000\"><label>Cert No<\/label><input id=\"shareCertNo\" value=\"AD-001\"><label>Date<\/label><input type=\"date\" id=\"shareDate\"><button class=\"btn btn-pdf\" onclick=\"downloadCert('share','pdf')\">PDF<\/button><button class=\"btn btn-png\" onclick=\"downloadCert('share','png')\">PNG<\/button><\/div><\/div>\n            <div class=\"card\"><div class=\"card-header\">Noteholder Certificate<\/div><div class=\"card-body\"><label>Noteholder<\/label><input id=\"noteHolderName\" value=\"Capital\"><label>Note No<\/label><input id=\"noteNumber\" value=\"CN001\"><label>Principal<\/label><input id=\"notePrincipal\" value=\"250000\"><label>Maturity<\/label><input type=\"date\" id=\"noteMaturity\"><button class=\"btn btn-pdf\" onclick=\"downloadCert('note','pdf')\">PDF<\/button><\/div><\/div><\/div>`;\n        document.getElementById('pane_biz').innerHTML = `<div class=\"grid\"><div class=\"card\"><div class=\"card-header\">Business Profile<\/div><div class=\"card-body\"><textarea id=\"bizDesc\">Adase Ads Ltd, Uganda. Earn 2% ad rev, 60% gifts, 20% agent comm.<\/textarea><button class=\"btn btn-pdf\" onclick=\"downloadTextAsPDF('bizDesc','Business_Profile')\">PDF<\/button><\/div><\/div><\/div>`;\n        document.getElementById('pane_pitch').innerHTML = `<div class=\"card\"><div class=\"card-header\">Pitch Deck<\/div><div class=\"card-body\"><div id=\"pitchSlidesContainer\"><\/div><button class=\"btn btn-primary\" onclick=\"addPitchSlide('pitchSlidesContainer','Slide','Content')\">Add slide<\/button><button class=\"btn btn-pdf\" onclick=\"exportPitchDeckPDF()\">Export PDF<\/button><\/div><\/div>`;\n        setTimeout(()=>{ if(document.getElementById('pitchSlidesContainer')?.children.length===0){ addPitchSlide('pitchSlidesContainer','Adase Ads Ltd','Seed $250k \/ Series A $2.5M'); addPitchSlide('pitchSlidesContainer','Earning model','2% ads, 60% gifts, 20% agent comm'); } },100);\n        document.getElementById('pane_equity').innerHTML = `<div class=\"grid\"><div class=\"card\"><div class=\"card-header\">NDA<\/div><div class=\"card-body\"><textarea id=\"nda\">Confidentiality agreement<\/textarea><button class=\"btn btn-pdf\" onclick=\"downloadTextAsPDF('nda','NDA')\">PDF<\/button><\/div><\/div><\/div>`;\n        document.getElementById('pane_conv').innerHTML = `<div class=\"grid\"><div class=\"card\"><div class=\"card-header\">Convertible Note<\/div><div class=\"card-body\"><textarea id=\"cn\">Principal $100k, 20% discount<\/textarea><button class=\"btn btn-pdf\" onclick=\"downloadTextAsPDF('cn','Convertible_Note')\">PDF<\/button><\/div><\/div><\/div>`;\n        document.getElementById('pane_security').innerHTML = `<div class=\"grid\"><div class=\"card\"><div class=\"card-header\">Debenture<\/div><div class=\"card-body\"><textarea id=\"deb\">Fixed & floating charge<\/textarea><button class=\"btn btn-pdf\" onclick=\"downloadTextAsPDF('deb','Debenture')\">PDF<\/button><\/div><\/div><\/div>`;\n        document.getElementById('pane_gov').innerHTML = `<div class=\"grid\"><div class=\"card\"><div class=\"card-header\">Board Minutes<\/div><div class=\"card-body\"><textarea id=\"min\">Minutes template<\/textarea><button class=\"btn btn-pdf\" onclick=\"downloadTextAsPDF('min','Minutes')\">PDF<\/button><\/div><\/div><\/div>`;\n        \n        \/\/ Financial & Excel panel with enhanced dropdown categories\n        document.getElementById('pane_fin').innerHTML = `<div class=\"grid\">\n            <div class=\"card\"><div class=\"card-header\">3-Year Financial Model<\/div><div class=\"card-body\"><button class=\"btn btn-excel\" onclick=\"exportExcel([['Year','Revenue','Profit'],['Y1',17460000,7444650]],'Financial_Model')\">Excel<\/button><\/div><\/div>\n            <div class=\"card\"><div class=\"card-header\">URA-Compliant Income & Expense Manager<\/div><div class=\"card-body\">\n                <form id=\"financeForm\" onsubmit=\"addTransaction(event)\">\n                    <label>Date (YYYY-MM-DD)<\/label><input type=\"date\" id=\"txnDate\" required>\n                    <label>Transaction Type<\/label><select id=\"txnType\"><option>Income<\/option><option>Expense<\/option><\/select>\n                    <label>Description<\/label><input type=\"text\" id=\"txnDesc\" placeholder=\"e.g., Ad revenue, Rent, Salaries\" required>\n                    <label>Amount (UGX, exclusive of VAT)<\/label><input type=\"number\" id=\"txnAmount\" step=\"1\" required>\n                    <label>VAT Amount (UGX) \u2013 18% standard or as applicable<\/label><input type=\"number\" id=\"txnVat\" step=\"1\" value=\"0\">\n                    <label>Category (select from dropdown)<\/label>\n                    <select id=\"txnCategorySelect\">${getCategoryOptions('Sales Revenue')}<\/select>\n                    <label>Company TIN (optional but recommended)<\/label><input type=\"text\" id=\"companyTin\" value=\"1057894541\">\n                    <button class=\"btn btn-primary\" type=\"submit\" style=\"margin-top:12px;\">\u2795 Add Record<\/button>\n                <\/form>\n                <div class=\"summary-stats\" style=\"margin-top:15px;\">\n                    <span class=\"stat\" id=\"summaryIncome\">Total Income: UGX 0<\/span>\n                    <span class=\"stat\" id=\"summaryExpense\">Total Expenses: UGX 0<\/span>\n                    <span class=\"stat\" id=\"summaryNet\">Net Profit: UGX 0<\/span>\n                    <span class=\"stat\" id=\"summaryVat\">VAT Payable\/Refundable: UGX 0<\/span>\n                <\/div>\n                <button class=\"btn btn-excel\" onclick=\"exportTransactionsToExcel()\"><i class=\"fas fa-file-excel\"><\/i> Export all records to Excel<\/button>\n                <table class=\"transaction-table\">\n                    <thead><tr><th>Date<\/th><th>Type<\/th><th>Description<\/th><th>Amount (UGX)<\/th><th>VAT<\/th><th>Category<\/th><th>Actions<\/th><\/tr><\/thead>\n                    <tbody id=\"transactionTableBody\"><\/tbody>\n                <\/table>\n                <p class=\"footer-note\" style=\"margin-top:10px;\">Compliant with URA: pre\u2011defined income\/expense categories, VAT tracking, TIN. Records stored locally.<\/p>\n            <\/div><\/div>\n        <\/div>`;\n        document.getElementById('pane_ir').innerHTML = `<div class=\"grid\"><div class=\"card\"><div class=\"card-header\">Quarterly Report<\/div><div class=\"card-body\"><textarea id=\"quarter\">Q1 report<\/textarea><button class=\"btn btn-pdf\" onclick=\"downloadTextAsPDF('quarter','Quarterly')\">PDF<\/button><\/div><\/div><\/div>`;\n        document.getElementById('pane_ref').innerHTML = `<div class=\"grid\"><div class=\"card\"><div class=\"card-header\">Glossary<\/div><div class=\"card-body\"><textarea id=\"gloss\">Acceleration, Crystallisation<\/textarea><button class=\"btn btn-pdf\" onclick=\"downloadTextAsPDF('gloss','Glossary')\">PDF<\/button><\/div><\/div><\/div>`;\n        document.getElementById('pane_faq').innerHTML = `<div class=\"grid\"><div class=\"card\"><div class=\"card-header\">Expanded FAQ<\/div><div class=\"card-body\"><textarea id=\"faqText\">25+ questions covering all documents.<\/textarea><button class=\"btn btn-pdf\" onclick=\"downloadTextAsPDF('faqText','FAQ')\">PDF<\/button><\/div><\/div><\/div>`;\n        document.getElementById('pane_terms').innerHTML = `<div class=\"grid\"><div class=\"card\"><div class=\"card-header\">Terms & Conditions<\/div><div class=\"card-body\"><textarea id=\"termsText\">URA standards, risk disclosure<\/textarea><button class=\"btn btn-pdf\" onclick=\"downloadTextAsPDF('termsText','Terms')\">PDF<\/button><\/div><\/div><\/div>`;\n        loadTransactions();\n    }\n    populateAllPanes();\n<\/script>\n<\/body>\n<\/html>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Adase Ads Ltd \u2013 Complete Suite + URA Income\/Expense with Categories Adase Ads Ltd \u2013 Complete Document Universe All documents + URA\u2011compliant Income\/Expense Manager \u2714 Income &#038; Expense records stored locally. URA standards: VAT, TIN, pre\u2011defined categories. Export to Excel.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"class_list":["post-171","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/comments?post=171"}],"version-history":[{"count":1,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/171\/revisions"}],"predecessor-version":[{"id":172,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/171\/revisions\/172"}],"wp:attachment":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/media?parent=171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}