Merhabalar ben number input var burda js ile otomatik inputlar doluyor miktar artıkça otomatik satır toplamı artıyor ama ara toplam kısmı var burda veri satır toplamdan silip ekleyince aktif hale geliyor. kodda sorunlar var çözemedim yanlış hesaplama yapıyor.Bu Konuda yardımcı olabilir misin? Ödev yapamadım Yapay zekadanda yardım olmadı.

<script>
document.addEventListener("DOMContentLoaded", function () {
    // 'toplam-fiyati' inputlarının değişikliklerini takip et
    const toplamFiyatiInputs = document.querySelectorAll("input[name='toplam-fiyati']");
    toplamFiyatiInputs.forEach(input => {
        input.addEventListener('input', function () {
            hesaplaAraToplam(); // Ara toplamı güncelle
            hesaplaGenelToplam(); // Genel toplamı güncelle
        });
    });
    // Toplu iskonto inputu için değişim kontrolü
    const discountValueInput = document.getElementById("discountValue"); // İskonto değeri inputu
    if (discountValueInput) {
        discountValueInput.addEventListener('input', function () {
            hesaplaAraToplam(); // Ara toplamı güncelle
            hesaplaGenelToplam(); // Genel toplamı güncelle
        });
    }
    // Para birimi seçimini dinle
    const paraBirimiRadyolar = document.querySelectorAll('input[name="para"]');
    paraBirimiRadyolar.forEach(radio => {
        radio.addEventListener('change', function() {
            hesaplaAraToplam();
            hesaplaGenelToplam();
        });
    });
    // Ara toplamı hesapla ve görüntüle
    function hesaplaAraToplam() {
        let araToplam = 0;
        // Tüm toplam-fiyati inputlarının değerlerini al ve toplama ekle
        toplamFiyatiInputs.forEach(function (input) {
            // Sayısal değeri al (binlik ayraçları dahil etme)
            let value = parseFloat(input.value.replace(/[^0-9.-]+/g, "")); // Binlik ayraçları temizle
            araToplam += isNaN(value) ? 0 : value;
        });
        const selectedCurrency = document.querySelector('input[name="para"]:checked').value;
        let symbol = selectedCurrency === "TL" ? "₺" : selectedCurrency === "USD" ? "$" : "€";
        // Ara toplamı span içinde görüntüle
        const araToplamSpan = document.querySelector(".ara-toplam");
        if (araToplamSpan) {
            araToplamSpan.textContent = araToplam.toLocaleString('tr-TR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + " " + symbol;
        }
    }
    // Genel toplamı hesapla ve görüntüle
    function hesaplaGenelToplam() {
        const araToplamSpan = document.querySelector(".ara-toplam");
        let araToplam = 0;
        if (araToplamSpan && araToplamSpan.textContent) {
            araToplam = parseFloat(araToplamSpan.textContent.replace(/[^0-9.-]+/g, "")) || 0;
        }
        const discountValueInput = document.getElementById("discountValue");
        let iskontoDeger = 0;
        if (discountValueInput && discountValueInput.value) {
            iskontoDeger = parseFloat(discountValueInput.value.replace(/[^0-9.-]+/g, "")) || 0;
        }
        const discountTypeSelect = document.getElementById("discountType");
        const iskontoTuru = discountTypeSelect ? discountTypeSelect.value : "%";
        let indirimMiktari = 0;
        const selectedCurrency = document.querySelector('input[name="para"]:checked').value;
        let symbol = selectedCurrency === "TL" ? "₺" : selectedCurrency === "USD" ? "$" : "€";
        // İskonto türüne göre işlem ve indirim miktarını hesapla
        if (iskontoDeger > 0) {
            document.getElementById("topluIskontoGoster").style.display = "block";
            if (iskontoTuru === "%") {
                if (iskontoDeger > 100) {
                    if (discountValueInput) {
                        discountValueInput.value = 100;
                    }
                    iskontoDeger = 100;
                }
                indirimMiktari = (araToplam * iskontoDeger) / 100;
                document.getElementById("topluIskontoDeger").textContent = "(%" + iskontoDeger + ") - " + indirimMiktari.toLocaleString('tr-TR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + " " + symbol;
            } else if (iskontoTuru === "birim") {
                indirimMiktari = iskontoDeger;
                document.getElementById("topluIskontoDeger").textContent = "(" + iskontoDeger.toLocaleString('tr-TR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + " " + symbol + ") - " + indirimMiktari.toLocaleString('tr-TR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + " " + symbol;
            }
        } else {
            document.getElementById("topluIskontoDeger").textContent = "";
            document.getElementById("topluIskontoGoster").style.display = "none";
            indirimMiktari = 0; // İskonto yoksa indirim miktarı sıfır olmalı
        }
        // Genel toplamı hesapla (ara toplamdan indirimi çıkar)
        let genelToplam = araToplam - indirimMiktari;
        genelToplam = genelToplam < 0 ? 0 : genelToplam;
        // Genel toplamı span içinde güncelle
        const genelToplamSpan = document.getElementById("genel-toplam");
        if (genelToplamSpan) {
            genelToplamSpan.textContent = genelToplam.toLocaleString('tr-TR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + " " + symbol;
        }
    }
    // Sayfa yüklendiğinde ilk hesaplamaları yap
    hesaplaAraToplam();
    hesaplaGenelToplam();
});
</script>