Allow reuse of references previously used on voided documents.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Fri, 25 Jun 2010 22:12:11 +0000 (22:12 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Fri, 25 Jun 2010 22:12:11 +0000 (22:12 +0000)
includes/references.inc

index 671db9346e2a3b4267a71041ed958d798863a301..8720ed4d777dde1e400fe42255219b366c6eb83c 100644 (file)
@@ -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