Расчет итоговой суммы с учетом кредита магазина - PullRequest
0 голосов
/ 05 мая 2020

Итак, я сделал форму заказа по-другому и пытаюсь подсчитать окончательную сумму на основе того, сколько у пользователя кредита магазина. Так, например, если у них был кредит в размере 100 фунтов стерлингов, а общая сумма составила бы 50 фунтов стерлингов, это просто отняло бы 50 фунтов стерлингов из общей суммы, а затем у пользователя оставалось бы 50 фунтов стерлингов. Тогда также, если бы общая сумма составила 500 фунтов стерлингов, то с учетом кредита пользователя общая сумма составила бы 400 фунтов стерлингов, и пользователю оставалось бы 0 фунтов стерлингов на балансе.

Окончательная сумма рассчитывается с учетом пользователя кредит магазина на счет

У меня возникли некоторые трудности с подсчетом окончательной суммы, поэтому сейчас это моя форма заказа:

<form action='' method='post' align = "center">
         <h2>Purchase</h2>
         <p><a href ="index.php">Return to website</a></p>

        <p><label>Name</label><br />

        <input type='text' name='name' required ></p>

        <p><label>Email</label><br />

        <input type='text' name='email' required ></p>

        <p><label>Number</label><br />

        <input type='text' name='number' required ></p>

        <p><label>Address</label><br />

        <input type='text' name='address' required ></p>

        <p><label>Town</label><br />

        <input type='text' name='town' required ></p>

        <p><label>Postcode</label><br />

        <input type='text' name='postcode' required ></p>

        <p><label>County</label><br />

        <input type='text' name='county'  ></p>

        <p><label>Product</label><br />

        <input type='text' name='product' readonly value='<?php echo $row['product'];?>'></p>

        <p><label>Price</label><br />

        <input type='text' name='price' readonly value='<?php echo $row['price'];?>'></p>

        <p><label>Amount</label><br />

        <input type="text" id="amount" name="amount" oninput="calc()" onkeypress="return isNumber(event)" />

         <p>Price : <b>£<span name="totalPrice" id="totalPrice" size="8"></span></b></p>
         <input type ="text" value="" name="shopTotal" id="shopTotal" />
         <input type="text" value="" id="minusCredit" name="minusCredit"/>
        <p>Delivery is £4.99</p>

        <p><input type='submit' name='submit' value='Submit Order'></p>

, и это сценарий, который у меня есть в момент, чтобы попытаться вычислить окончательную сумму:

<script>

function calc() 
{
var amount =  document.getElementById("amount").value;
<?php 

//calculate the discount
$price = $row['price'];
$deliv = 4.99;
$money = $_SESSION['money'];

if ($money > $price) {
$discount = $price;

} else {
    $discount = 0;
}


echo $discount;

?>  

//calculate final cost


var totalBefore = <?php echo $price ?> * amount + <?php echo $deliv?>

var discount = <?php echo $discount ?> * amount + <?php echo $deliv?>

var totalAfter = <?php echo $price ?> * amount + <?php echo $deliv?> - discount


document.getElementById("totalPrice").innerHTML = totalAfter.toFixed(2)
document.getElementById("shopTotal").value = totalAfter.toFixed(2)
document.getElementById("minusCredit").value = discount.toFixed(2)

}

</script>

Проблема в том, что независимо от того, какая сумма придет к ней, скидка всегда будет доводить ее до 0 фунтов стерлингов, независимо от того, сколько магазина кредитует пользователя есть.

Сумма кредита, которую они имеют, основывается на этом значении:

$money = $_SESSION['money'];

Проблема с I just to $ Discount = $ money - $ price; заключается в том, что если бы общая сумма составляла всего 10 фунтов стерлингов, а у пользователя был кредит магазина, тогда скидка в долларах была бы равна 90 фунтов стерлингов, поэтому окончательная сумма стала бы 80 фунтов стерлингов.

Я пытаюсь сделать что-то вроде Переменная $ money больше, чем цена + доставка, тогда окончательное значение будет равно 0, а затем я обновлю таблицу базы данных, чтобы вывести кредит из магазина пользователя. Или, если сумма цена + доставка больше, чем переменная $ money, тогда окончательная сумма будет равна цене + доставке за вычетом кредита магазина, который есть у пользователя.

Надеюсь, теперь это имеет смысл

Как это исправить?

1 Ответ

0 голосов
/ 05 мая 2020

Ладно, поигравшись с ним, мне удалось заставить его работать. Возможно, это не самое элегантное решение, но оно работает.

Мой сценарий расчета теперь выглядит следующим образом:

function calc() 
{
var amount =  document.getElementById("amount").value;
<?php 

//calculate the discount
$price = $row['price'];
$deliv = 4.99;
$money = $_SESSION['money'];

$discountTotal = $money - $price;

$discount = min($discountTotal, $price);

echo $discount;
?>  

//calculate final cost


var totalBefore = <?php echo $price ?> * amount + <?php echo $deliv?>

var discount;
var totalAfter;

  if (totalBefore < <?php echo $money ?>)  {
  discount = <?php echo $discount ?> * amount + <?php echo $deliv?>;

  } 


    if (totalBefore > <?php echo $money?>) {
   var discountCalculate = <?php echo $price ?> * amount + <?php echo $deliv - $money?> ;
   discount = totalBefore - discountCalculate;
  }


var totalAfter = <?php echo $price ?> * amount + <?php echo $deliv?> - discount


document.getElementById("totalPrice").innerHTML = totalAfter.toFixed(2)
document.getElementById("shopTotal").value = totalAfter.toFixed(2)
document.getElementById("minusCredit").value = discount.toFixed(2)

}

</script>

Скрипт проверяет, больше ли сумма перед тем, как принять во внимание кредит магазина или меньше, чем сумма кредита магазина, которую имеет пользователь.

Если он меньше, то общая сумма будет равна 0, а снятая сумма будет такой же, как и цена.

Если больше затем скрипт сначала вычислит, сколько будет получено от предыдущей суммы - суммы кредита магазина, имеющегося у пользователя. Значение скидки теперь представляет собой сумму до цены - только что рассчитанное значение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...