X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Freferences.inc;h=cd01ab6c67386032182dbda57e5a962390f1bea2;hb=3df0648d1513215ea28378e679d4291d3e609ba6;hp=292ccf4402c178b7fe8cd9c1073ca5cebc4de7fc;hpb=90b3d069d96b99671af51726e2953352738abb75;p=fa-stable.git diff --git a/includes/references.inc b/includes/references.inc index 292ccf44..cd01ab6c 100644 --- a/includes/references.inc +++ b/includes/references.inc @@ -57,7 +57,7 @@ class references function save($type, $id, $reference) { update_reference($type, $id, $reference); // store in refs table - if ($reference == $this->get_next($type)) { // if reference was not changed from default + if ($reference == $this->get_next($type)) { // if reference was bigger or not changed from default $next = $this->_increment($reference); // increment default save_next_reference($type, $next); } @@ -123,17 +123,19 @@ function is_new_reference($ref, $type, $trans_no=0) } if ($db_type != null) { - $sql = "SELECT $db_ref FROM $db_name + $sql = "SELECT $db_ref FROM $db_name tbl LEFT JOIN ".TB_PREF."voided v ON - $db_name.$db_type=v.type AND $db_name.$db_trans=v.id - WHERE $db_name.$db_ref=$ref AND ISNULL(v.id) - AND $db_name.$db_type=$type"; + tbl.$db_type=v.type AND tbl.$db_trans=v.id + WHERE $db_ref=$ref AND ISNULL(v.id) + AND tbl.$db_type=$type"; } else { - $sql = "SELECT $db_ref FROM $db_name + $sql = "SELECT $db_ref ref FROM $db_name tbl LEFT JOIN ".TB_PREF."voided v ON - v.type=$type AND $db_name.$db_trans=v.id + v.type=$type AND tbl.$db_trans=v.id WHERE $db_ref=$ref AND ISNULL(v.id)"; } + if ($trans_no) + $sql .= " AND tbl.`$db_trans` != ".db_escape($trans_no); $result = db_query($sql, "could not test for unique reference");