onurCC adlı üyeden alıntı: mesajı görüntüle
Deneyip sonuç bildirir misin?

<script>
document.addEventListener("DOMContentLoaded", function () {
    const araToplamSpan = document.querySelector(".ara-toplam");
    const genelToplamSpan = document.getElementById("genel-toplam");
    const discountValueInput = document.getElementById("discountValue");
    const discountTypeSelect = document.getElementById("discountType");
    const paraBirimiRadyolar = document.querySelectorAll('input[name="para"]');
    const addRowButton = document.getElementById("addRow");
    const tableBody = document.querySelector("tbody");
    const iskontoGosterDiv = document.getElementById("iskontogoster");
    const iskontoToplamSpan = document.getElementById("iskontoToplam");
    const topluIskontoGosterDiv = document.getElementById("topluIskontoGoster");
    const topluIskontoDegerSpan = document.getElementById("topluIskontoDeger");
    const ekstraIskontoIcon = document.querySelector(".icon-ekstra-iskonto");
    const ekstraIskontoRow = document.querySelector(".ekstra-iskonto-row");
    let ekstraIskontoInput;
    let ekstraIskontoLabel;

    function setInputValueAndTrigger(inputElement, value) {
        inputElement.value = value;
        inputElement.dispatchEvent(new Event('input'));
    }

    function hesaplaAraToplam() {
        let araToplam = 0;
        const toplamFiyatiInputs = document.querySelectorAll("input[name='toplam-fiyati']");
        toplamFiyatiInputs.forEach(function (input) {
            let value = parseFloat(input.value.replace(/[^0-9.-]+/g, ""));
            araToplam += isNaN(value) ? 0 : value;
        });
        const selectedCurrency = document.querySelector('input[name="para"]:checked')?.value || "TL";
        let symbol = selectedCurrency === "TL" ? "₺" : selectedCurrency === "USD" ? "$" : "€";
        if (araToplamSpan) {
            araToplamSpan.textContent = araToplam.toLocaleString('tr-TR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + " " + symbol;
        }
        return araToplam;
    }

    function hesaplaGenelToplam() {
        const araToplam = hesaplaAraToplam();
        let topluIskontoDeger = 0;
        let topluIskontoIndirimMiktari = 0;
        if (discountValueInput && discountValueInput.value) {
            topluIskontoDeger = parseFloat(discountValueInput.value.replace(/[^0-9.-]+/g, "")) || 0;
        }
        const topluIskontoTuru = discountTypeSelect ? discountTypeSelect.value : "%";
        if (topluIskontoDeger > 0) {
            topluIskontoGosterDiv.style.display = "block";
            const currency = document.querySelector('input[name="para"]:checked')?.value || "₺";
            if (topluIskontoTuru === "%") {
                const gercekIskonto = Math.min(topluIskontoDeger, 100);
                topluIskontoIndirimMiktari = (araToplam * gercekIskonto) / 100;
                topluIskontoDegerSpan.textContent = "(%" + gercekIskonto + ") - " + topluIskontoIndirimMiktari.toLocaleString('tr-TR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + " " + currency;
            } else if (topluIskontoTuru === "birim") {
                topluIskontoIndirimMiktari = topluIskontoDeger;
                topluIskontoDegerSpan.textContent = "(" + topluIskontoDeger.toLocaleString('tr-TR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + " " + currency + ") - " + topluIskontoIndirimMiktari.toLocaleString('tr-TR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + " " + currency;
            }
        } else {
            topluIskontoDegerSpan.textContent = "";
            topluIskontoGosterDiv.style.display = "none";
            topluIskontoIndirimMiktari = 0;
        }

        let ekstraIskonto = 0;
        if (ekstraIskontoInput && ekstraIskontoInput.value) {
            ekstraIskonto = parseFloat(ekstraIskontoInput.value.replace(/[^0-9.-]+/g, "")) || 0;
        }

        let genelToplam = araToplam - topluIskontoIndirimMiktari - ekstraIskonto;
        genelToplam = genelToplam < 0 ? 0 : genelToplam;
        if (genelToplamSpan) {
            genelToplamSpan.textContent = genelToplam.toLocaleString('tr-TR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + " " + (document.querySelector('input[name="para"]:checked')?.value || "₺");
        }
    }

    function temizleBireyselIskontolar() {
        const rows = document.querySelectorAll('tbody tr');
        rows.forEach(row => {
            const iskontoInput = row.querySelector('.iskonto-td input[type="number"]');
            const iskontoTuruSelect = row.querySelector('.iskonto-td select.iskonto-turu');
            const iskontoMiktariSpan = row.querySelector('.iskonto-miktari');
            if (iskontoInput) iskontoInput.value = '';
            if (iskontoTuruSelect) iskontoTuruSelect.value = '%';
            if (iskontoMiktariSpan) iskontoMiktariSpan.textContent = '';
        });
        iskontoGosterDiv.style.display = "none";
        iskontoToplamSpan.textContent = "0.00";
    }

    document.addEventListener('input', function (event) {
        if (event.target && event.target.name === 'toplam-fiyati') {
            hesaplaAraToplam();
            hesaplaGenelToplam();
        } else if (event.target && event.target.id === 'discountValue') {
            temizleBireyselIskontolar();
            hesaplaAraToplam();
            hesaplaGenelToplam();
        } else if (event.target && event.target.id === 'ekstraIskontoValue') {
            hesaplaGenelToplam();
        }
    });

    document.addEventListener('change', function (event) {
        if (event.target && event.target.id === 'discountType') {
            temizleBireyselIskontolar();
            hesaplaAraToplam();
            hesaplaGenelToplam();
        } else if (event.target && event.target.name === 'para') {
            hesaplaAraToplam();
            hesaplaGenelToplam();
        }
    });

    if (addRowButton && tableBody) {
        addRowButton.addEventListener('click', function() {
            const newRow = tableBody.insertRow();
            const cell1 = newRow.insertCell();
            const cell2 = newRow.insertCell();
            cell1.textContent = "Yeni Ürün";
            cell2.innerHTML = '<input type="number" name="toplam-fiyati" value="0.00">';
        });
    }

    if (ekstraIskontoIcon && ekstraIskontoRow) {
        ekstraIskontoIcon.addEventListener('click', function() {
            if (!ekstraIskontoInput) {
                ekstraIskontoLabel = document.createElement('label');
                ekstraIskontoLabel.textContent = 'Ekstra İskonto:';
                ekstraIskontoLabel.classList.add('me-2');
                ekstraIskontoInput = document.createElement('input');
                ekstraIskontoInput.type = 'number';
                ekstraIskontoInput.id = 'ekstraIskontoValue';
                ekstraIskontoInput.classList.add('form-control', 'd-inline-block', 'w-auto', 'ms-2');
                ekstraIskontoInput.placeholder = 'İskonto Tutarı';
                ekstraIskontoRow.appendChild(ekstraIskontoLabel);
                ekstraIskontoRow.appendChild(ekstraIskontoInput);
                ekstraIskontoInput.addEventListener('input', hesaplaGenelToplam);
            } else {
                const visible = ekstraIskontoInput.style.display !== 'none';
                ekstraIskontoLabel.style.display = visible ? 'none' : 'inline';
                ekstraIskontoInput.style.display = visible ? 'none' : 'inline-block';
            }
        });
    }

    hesaplaAraToplam();
    hesaplaGenelToplam();

    // Örnek kullanım: input değeri set edip event tetiklemek
    const toplamInput = document.querySelector("input[name='toplam-fiyati']");
    const adet = 2;
    const birimFiyat = 150;
    if (toplamInput) {
        setInputValueAndTrigger(toplamInput, (adet * birimFiyat).toFixed(2));
    }
});
</script>
hayrı sistem js çalışmadı.