function updatePaymentAllAmount()

in src/Feature/Cart/code/Scripts/checkout.js [592:636]


function updatePaymentAllAmount() {
    var ccIsAdded = checkoutDataViewModel.creditCardPayment().isAdded();
    var gcIsAdded = checkoutDataViewModel.giftCardPayment().isAdded();
    var lcIsAdded = checkoutDataViewModel.loyaltyCardPayment().isAdded();
    if (!ccIsAdded && !gcIsAdded && !lcIsAdded) {
        return;
    }

    var total = parseFloat(checkoutDataViewModel.cart().totalAmount());
    var lcAmount = parseFloat(checkoutDataViewModel.loyaltyCardPayment().loyaltyCardAmount());
    var gcAmount = parseFloat(checkoutDataViewModel.giftCardPayment().giftCardAmount());
    var ccAmount = parseFloat(checkoutDataViewModel.creditCardPayment().creditCardAmount());
    var aTotal = parseFloat(lcAmount + gcAmount + ccAmount);

    if (aTotal === total) {
        return;
    }

    var count = 0
    if (lcIsAdded) {
        ++count;
    }
    if (gcIsAdded) {
        ++count;
    }
    if (ccIsAdded) {
        ++ccount;
    }

    if (aTotal > total) {
        var diff = (aTotal - total) / count;
        lcAmount = lcIsAdded ? lcAmount - diff : 0;
        gcAmount = gcIsAdded ? gcAmount - diff : 0;
        ccAmount = ccIsAdded ? ccAmount - diff : 0;
    } else if (aTotal < total) {
        var diff = (total - aTotal) / count;
        lcAmount = lcIsAdded ? lcAmount + diff : 0;
        gcAmount = gcIsAdded ? gcAmount + diff : 0;
        ccAmount = ccIsAdded ? ccAmount + diff : 0;
    }

    checkoutDataViewModel.loyaltyCardPayment().loyaltyCardAmount((lcAmount).toFixed(2));
    checkoutDataViewModel.giftCardPayment().giftCardAmount((gcAmount).toFixed(2));
    checkoutDataViewModel.creditCardPayment().creditCardAmount((ccAmount).toFixed(2));
}