diff --git a/1.html b/1.html index 767c774..ad9c096 100644 --- a/1.html +++ b/1.html @@ -326,26 +326,42 @@ } // Fix subtotal calculation when tax is present - let subtotalRow = document.querySelector('.total-row.subtotal span:last-child'); - let taxRow = document.querySelector('.total-row:not(.subtotal):not(.grand-total) span:last-child'); - let totalRow = document.querySelector('.total-row.grand-total span:last-child'); - - if (subtotalRow && taxRow && totalRow) { - // Extract numeric values - let subtotalText = subtotalRow.textContent.trim().replace(/[^\d.]/g, ''); - let taxText = taxRow.textContent.trim().replace(/[^\d.]/g, ''); - let totalText = totalRow.textContent.trim().split(' ')[0].replace(/[^\d.]/g, ''); + setTimeout(function() { + let totalRows = document.querySelectorAll('.total-row'); + let subtotalSpan = null; + let taxSpan = null; + let totalSpan = null; - let subtotalNum = parseFloat(subtotalText); - let taxNum = parseFloat(taxText); - let totalNum = parseFloat(totalText); + totalRows.forEach(function(row) { + if (row.classList.contains('subtotal')) { + subtotalSpan = row.querySelectorAll('span')[1]; + } else if (row.classList.contains('grand-total')) { + totalSpan = row.querySelectorAll('span')[1]; + } else { + // This is the tax row + taxSpan = row.querySelectorAll('span')[1]; + } + }); - // If subtotal equals total, calculate actual subtotal (total - tax) - if (Math.abs(subtotalNum - totalNum) < 0.01 && taxNum > 0) { - let actualSubtotal = totalNum - taxNum; - subtotalRow.textContent = formatIndianNumber(actualSubtotal.toFixed(2)); + if (subtotalSpan && taxSpan && totalSpan) { + // Extract numeric values + let subtotalText = subtotalSpan.textContent.trim().replace(/,/g, ''); + let taxText = taxSpan.textContent.trim().replace(/,/g, ''); + let totalText = totalSpan.textContent.trim().split(' ')[0].replace(/,/g, ''); + + let subtotalNum = parseFloat(subtotalText); + let taxNum = parseFloat(taxText); + let totalNum = parseFloat(totalText); + + console.log('Subtotal:', subtotalNum, 'Tax:', taxNum, 'Total:', totalNum); + + // If subtotal equals total, calculate actual subtotal (total - tax) + if (Math.abs(subtotalNum - totalNum) < 1 && taxNum > 0) { + let actualSubtotal = totalNum - taxNum; + subtotalSpan.textContent = formatIndianNumber(actualSubtotal.toFixed(2)); + } } - } + }, 100); });