diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index 7789a81e3677a997aca28fabe8e49f62470f9aec..66615d0eac14fb10c86f37eb664309d60b9e5913 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -799,7 +799,9 @@ class tform {
}
break;
case 'UNIQUE':
- if($this->action == 'NEW') {
+ if($validator['allowempty'] != 'y') $validator['allowempty'] = 'n';
+ if($validator['allowempty'] == 'n' || ($validator['allowempty'] == 'y' && $field_value != '')){
+ if($this->action == 'NEW') {
$num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM ".$escape.$this->formDef['db_table'].$escape. " WHERE $field_name = '".$app->db->quote($field_value)."'");
if($num_rec["number"] > 0) {
$errmsg = $validator['errmsg'];
@@ -809,7 +811,7 @@ class tform {
$this->errorMessage .= $errmsg."
\r\n";
}
}
- } else {
+ } else {
$num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM ".$escape.$this->formDef['db_table'].$escape. " WHERE $field_name = '".$app->db->quote($field_value)."' AND ".$this->formDef['db_table_idx']." != ".$this->primary_id);
if($num_rec["number"] > 0) {
$errmsg = $validator['errmsg'];
@@ -819,7 +821,8 @@ class tform {
$this->errorMessage .= $errmsg."
\r\n";
}
}
- }
+ }
+ }
break;
case 'NOTEMPTY':
if(empty($field_value)) {
diff --git a/interface/web/client/form/client.tform.php b/interface/web/client/form/client.tform.php
index ad95413cd4678a925a1f7aade7e76ce91bd2b41d..1b66ac75407fbf27379fec2aa301162b95240533 100644
--- a/interface/web/client/form/client.tform.php
+++ b/interface/web/client/form/client.tform.php
@@ -118,6 +118,10 @@ $form["tabs"]['address'] = array (
'customer_no' => array (
'datatype' => 'VARCHAR',
'formtype' => 'TEXT',
+ 'validators' => array ( 0 => array ( 'type' => 'UNIQUE',
+ 'errmsg'=> 'customer_no_error_unique',
+ 'allowempty' => 'y'),
+ ),
'default' => '',
'value' => '',
'separator' => '',
diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php
index 6163c7293a94cb9dabefb48f4500265349ecf642..c9079ec6a26212ade86c0492152ad995ddb7fd4d 100644
--- a/interface/web/client/form/reseller.tform.php
+++ b/interface/web/client/form/reseller.tform.php
@@ -118,6 +118,10 @@ $form["tabs"]['address'] = array (
'customer_no' => array (
'datatype' => 'VARCHAR',
'formtype' => 'TEXT',
+ 'validators' => array ( 0 => array ( 'type' => 'UNIQUE',
+ 'errmsg'=> 'customer_no_error_unique',
+ 'allowempty' => 'y'),
+ ),
'default' => '',
'value' => '',
'separator' => '',
diff --git a/interface/web/client/lib/lang/de_client.lng b/interface/web/client/lib/lang/de_client.lng
index 88ebdfecafa6de498783f303b376f57ed44787e9..d43c98a591e4511addc09de92cb6c47db6b40659 100644
--- a/interface/web/client/lib/lang/de_client.lng
+++ b/interface/web/client/lib/lang/de_client.lng
@@ -135,5 +135,6 @@ $wb['generate_password_txt'] = "Passwort erzeugen";
$wb['repeat_password_txt'] = "Passwort wiederholen";
$wb['password_mismatch_txt'] = "Die Passwörter stimmen nicht überein.";
$wb['password_match_txt'] = "Die Passwörter stimmen überein.";
+$wb["customer_no_error_unique"] = 'Die Kundennummer muß einzigartig sein (oder leer).';
?>
diff --git a/interface/web/client/lib/lang/de_reseller.lng b/interface/web/client/lib/lang/de_reseller.lng
index 26e6c745ce3cb2634667f2609d845ee2b8b9ffe4..90d45e3cfc7cc889200b9d161b39d6deca07d51a 100644
--- a/interface/web/client/lib/lang/de_reseller.lng
+++ b/interface/web/client/lib/lang/de_reseller.lng
@@ -128,5 +128,6 @@ $wb['generate_password_txt'] = "Passwort erzeugen";
$wb['repeat_password_txt'] = "Passwort wiederholen";
$wb['password_mismatch_txt'] = "Die Passwörter stimmen nicht überein.";
$wb['password_match_txt'] = "Die Passwörter stimmen überein.";
+$wb["customer_no_error_unique"] = 'Die Kundennummer muß einzigartig sein (oder leer).';
?>
diff --git a/interface/web/client/lib/lang/en_client.lng b/interface/web/client/lib/lang/en_client.lng
index 38946a48c06276ad505fcca1567d78ef666ea680..1334dc4ca20092796f97e649052f0cbfa15194db 100644
--- a/interface/web/client/lib/lang/en_client.lng
+++ b/interface/web/client/lib/lang/en_client.lng
@@ -139,4 +139,5 @@ $wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['email_error_isemail'] = 'Please enter a valid email address.';
+$wb["customer_no_error_unique"] = 'The customer no. must be unique (or empty).';
?>
diff --git a/interface/web/client/lib/lang/en_reseller.lng b/interface/web/client/lib/lang/en_reseller.lng
index bc26515501e779888aa9dbd88366f0c782326cbc..f23cd1896c1f362728c3e14900c652c53c26e94d 100644
--- a/interface/web/client/lib/lang/en_reseller.lng
+++ b/interface/web/client/lib/lang/en_reseller.lng
@@ -131,4 +131,5 @@ $wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['email_error_isemail'] = 'Please enter a valid email address.';
+$wb["customer_no_error_unique"] = 'The customer no. must be unique (or empty).';
?>