Technical Mitra Next-Gen GST Invoice Generator
Create & Calculate GST Bills with GST 2.0 Ease
Invoice Items
Options
Calculation Summary
Subtotal (Pre-GST)₹0.00
Total GST₹0.00
CGST₹0.00
SGST/UTGST₹0.00
Grand Total
₹0.00 `;
const previewWindow = window.open('', '_blank');
previewWindow.document.write(invoiceHTML);
previewWindow.document.close();
};
// Modal Control
const openModal = () => modal.style.display = "block";
const closeModal = () => modal.style.display = "none";
openModalBtn.addEventListener('click', openModal);
modalCloseBtn.addEventListener('click', closeModal);
window.addEventListener('click', (event) => { if (event.target == modal) closeModal(); });// Event Listeners
addItemBtn.addEventListener('click', createItemRow);
resetBtn.addEventListener('click', resetForm);
previewAndSaveBtn.addEventListener('click', () => { generateAndShowInvoice(); closeModal(); });
logoUploadInput.addEventListener('change', (e) => { const file = e.target.files[0]; if (file) { const reader = new FileReader(); reader.onload = (event) => logoBase64 = event.target.result; reader.readAsDataURL(file); } });
autoFillBtn.addEventListener('click', () => { const d = new Date(); document.getElementById('invoice-date').value = d.toISOString().split('T')[0]; document.getElementById('invoice-number').value = `INV-${d.getFullYear()}${String(d.getMonth() + 1).padStart(2, '0')}${String(d.getDate()).padStart(2, '0')}-${Math.floor(1000 + Math.random() * 9000)}`; });
[gstTypeToggle, transactionTypeToggle].forEach(toggle => {
toggle.addEventListener('click', (e) => {
const button = e.target.closest('.m3-btn');
if (button) {
toggle.querySelector('.active').classList.remove('active');
button.classList.add('active');
if (toggle.id === 'gst-type-toggle') gstCalculationType = button.dataset.type;
if (toggle.id === 'transaction-type-toggle') transactionType = button.dataset.type;
calculateTotals();
}
});
});
// Initial setup
createItemRow();
createItemRow();
calculateTotals();
});