From f30537908e67494d74831f50490df4b965e657ff Mon Sep 17 00:00:00 2001 From: Joe Hunt Date: Fri, 6 Jan 2012 15:51:52 +0100 Subject: [PATCH] Improved float compare for AR/AP ledgers. --- includes/current_user.inc | 2 +- purchasing/includes/db/supp_trans_db.inc | 2 +- purchasing/includes/db/suppliers_db.inc | 2 +- reporting/rep102.php | 4 ++-- reporting/rep202.php | 4 ++-- sales/includes/db/customers_db.inc | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/includes/current_user.inc b/includes/current_user.inc index 51c03ee6..60964cbb 100644 --- a/includes/current_user.inc +++ b/includes/current_user.inc @@ -217,7 +217,7 @@ if (!floatcmp($value1, $value2)) compare value is 0 */ -define('FLOAT_COMP_DELTA', 0.0000001); +define('FLOAT_COMP_DELTA', 0.004); function floatcmp($a, $b) { diff --git a/purchasing/includes/db/supp_trans_db.inc b/purchasing/includes/db/supp_trans_db.inc index e0bda878..b5b93d9e 100644 --- a/purchasing/includes/db/supp_trans_db.inc +++ b/purchasing/includes/db/supp_trans_db.inc @@ -179,7 +179,7 @@ function get_sql_for_supplier_inquiry() (trans.ov_amount + trans.ov_gst + trans.ov_discount) AS TotalAmount, trans.alloc AS Allocated, ((trans.type = ".ST_SUPPINVOICE." OR trans.type = ".ST_SUPPCREDIT.") AND trans.due_date < '" . date2sql(Today()) . "') AS OverDue, - (ABS(trans.ov_amount + trans.ov_gst + trans.ov_discount - trans.alloc) <= 0.005) AS Settled + (ABS(trans.ov_amount + trans.ov_gst + trans.ov_discount) - trans.alloc <= ".FLOAT_COMP_DELTA.") AS Settled FROM ".TB_PREF."supp_trans as trans, ".TB_PREF."suppliers as supplier WHERE supplier.supplier_id = trans.supplier_id AND trans.tran_date >= '$date_after' diff --git a/purchasing/includes/db/suppliers_db.inc b/purchasing/includes/db/suppliers_db.inc index de49a882..dd9e49c9 100644 --- a/purchasing/includes/db/suppliers_db.inc +++ b/purchasing/includes/db/suppliers_db.inc @@ -114,7 +114,7 @@ function get_supplier_details($supplier_id, $to=null, $all=true) supp.payment_terms = ".TB_PREF."payment_terms.terms_indicator AND supp.supplier_id = $supplier_id "; if (!$all) - $sql .= "AND ABS(trans.ov_amount + trans.ov_gst + trans.ov_discount) - trans.alloc > 0.004 "; + $sql .= "AND ABS(trans.ov_amount + trans.ov_gst + trans.ov_discount) - trans.alloc > ".FLOAT_COMP_DELTA." "; $sql .= "GROUP BY supp.supp_name, ".TB_PREF."payment_terms.terms, diff --git a/reporting/rep102.php b/reporting/rep102.php index 07847070..f4ec4a88 100644 --- a/reporting/rep102.php +++ b/reporting/rep102.php @@ -57,9 +57,9 @@ function get_invoices($customer_id, $to, $all=true) AND ".TB_PREF."debtors_master.debtor_no = ".TB_PREF."debtor_trans.debtor_no AND ".TB_PREF."debtor_trans.debtor_no = $customer_id AND ".TB_PREF."debtor_trans.tran_date <= '$todate' - AND ABS(".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_freight_tax + ".TB_PREF."debtor_trans.ov_discount) > 0.004 "; + AND ABS(".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_freight_tax + ".TB_PREF."debtor_trans.ov_discount) > ".FLOAT_COMP_DELTA." "; if (!$all) - $sql .= "AND ABS(".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_freight_tax + ".TB_PREF."debtor_trans.ov_discount - ".TB_PREF."debtor_trans.alloc) > 0.004 "; + $sql .= "AND ABS(".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_freight_tax + ".TB_PREF."debtor_trans.ov_discount - ".TB_PREF."debtor_trans.alloc) > ".FLOAT_COMP_DELTA." "; $sql .= "ORDER BY ".TB_PREF."debtor_trans.tran_date"; return db_query($sql, "The customer details could not be retrieved"); diff --git a/reporting/rep202.php b/reporting/rep202.php index 32f7bed3..6bbf6d92 100644 --- a/reporting/rep202.php +++ b/reporting/rep202.php @@ -59,9 +59,9 @@ function get_invoices($supplier_id, $to, $all=true) AND ".TB_PREF."suppliers.supplier_id = ".TB_PREF."supp_trans.supplier_id AND ".TB_PREF."supp_trans.supplier_id = $supplier_id AND ".TB_PREF."supp_trans.tran_date <= '$todate' - AND ABS(".TB_PREF."supp_trans.ov_amount + ".TB_PREF."supp_trans.ov_gst + ".TB_PREF."supp_trans.ov_discount) > 0.004 "; + AND ABS(".TB_PREF."supp_trans.ov_amount + ".TB_PREF."supp_trans.ov_gst + ".TB_PREF."supp_trans.ov_discount) > ".FLOAT_COMP_DELTA." "; if (!$all) - $sql .= "AND ABS(".TB_PREF."supp_trans.ov_amount + ".TB_PREF."supp_trans.ov_gst + ".TB_PREF."supp_trans.ov_discount) - ".TB_PREF."supp_trans.alloc > 0.004 "; + $sql .= "AND ABS(".TB_PREF."supp_trans.ov_amount + ".TB_PREF."supp_trans.ov_gst + ".TB_PREF."supp_trans.ov_discount) - ".TB_PREF."supp_trans.alloc > ".FLOAT_COMP_DELTA." "; $sql .= "ORDER BY ".TB_PREF."supp_trans.tran_date"; diff --git a/sales/includes/db/customers_db.inc b/sales/includes/db/customers_db.inc index 1bbe7677..3a67e4ed 100644 --- a/sales/includes/db/customers_db.inc +++ b/sales/includes/db/customers_db.inc @@ -99,7 +99,7 @@ function get_customer_details($customer_id, $to=null, $all=true) AND ".TB_PREF."debtors_master.credit_status = ".TB_PREF."credit_status.id AND ".TB_PREF."debtors_master.debtor_no = ".db_escape($customer_id)." "; if (!$all) - $sql .= "AND ABS(trans.ov_amount + trans.ov_gst + trans.ov_freight + trans.ov_freight_tax + trans.ov_discount - trans.alloc) > 0.004 "; + $sql .= "AND ABS(trans.ov_amount + trans.ov_gst + trans.ov_freight + trans.ov_freight_tax + trans.ov_discount - trans.alloc) > ".FLOAT_COMP_DELTA." "; $sql .= "GROUP BY ".TB_PREF."debtors_master.name, ".TB_PREF."payment_terms.terms, -- 2.30.2