From c5dc92bf60148463852a81f74284117ce3fd1e92 Mon Sep 17 00:00:00 2001 From: Janusz Dobrowolski Date: Fri, 25 Jun 2010 22:12:11 +0000 Subject: [PATCH] Allow reuse of references previously used on voided documents. --- includes/references.inc | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/includes/references.inc b/includes/references.inc index 671db934..8720ed4d 100644 --- a/includes/references.inc +++ b/includes/references.inc @@ -105,14 +105,23 @@ function is_new_reference($ref, $type) $db_info = get_systype_db_info($type); $db_name = $db_info[0]; $db_type = $db_info[1]; + $db_trans = $db_info[2]; $db_ref = $db_info[3]; if ($db_ref != null) { - $sql = "SELECT $db_ref FROM $db_name WHERE $db_ref='$ref'"; - if ($db_type != null) - $sql .= " AND $db_type=$type"; - + if ($db_type != null) { + $sql = "SELECT $db_ref FROM $db_name + 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"; + } else { + $sql = "SELECT $db_ref FROM $db_name + LEFT JOIN ".TB_PREF."voided v ON + v.type=$type AND $db_name.$db_trans=v.id + WHERE $db_ref='$ref' AND ISNULL(v.id)"; + } $result = db_query($sql, "could not test for unique reference"); return (db_num_rows($result) == 0); @@ -122,4 +131,5 @@ function is_new_reference($ref, $type) return true; } + ?> \ No newline at end of file -- 2.30.2