Here is the code;
//calculate parts total
$sqlparts = "SELECT jobNumber, SUM(unitPrice*quantity) AS c FROM s_partOrders WHERE jobNumber = $jobNumber";
$rowparts = mysqli_query($con, $sqlparts) or die('Action failed: ' . mysqli_error($con));
$rsparts = mysqli_fetch_assoc($rowparts);
$partsTotal = $rsparts[c];
if(empty($rsparts[c]))
{
$partsTotal = 0;
}
// calculate payments total
$serviceTotal = $row[costLabour]+$row[costCallout]+$row[costDelivery]+$partsTotal;
$sqlpayments = "SELECT jobNumber, amount, SUM(amount) AS sumAmount FROM s_payments WHERE jobNumber = $jobNumber";
$rowpayments = mysqli_query($con, $sqlpayments) or die('Action failed: ' . mysqli_error($con));
$rspayments = mysqli_fetch_assoc($rowpayments);
$paymentsTotal = $rspayments[sumAmount];
if(empty($rspayments[sumAmount]))
{
$paymentsTotal = 0;
}
$amountDue = $serviceTotal - $paymentsTotal;
$gst = round($serviceTotal/11, 2);
$exGST = $serviceTotal-$gst;
echo "($partsTotal + $row[costLabour] + $row[costCallout] + $row[costDelivery]) - $paymentsTotal = $amountDue";
This is the output result!
(1850 + 1321.14 + 0 + 0) - 3171.14 = 4.54747350886E-13
It only happens on some records though. Others calculate perfectly. Kinda strange!
All values stored in the database as double
.