added support for numbers with leading zero

This commit is contained in:
Frank Schubert
2021-12-21 21:47:30 +01:00
parent 038c8d5c47
commit b79c5cbc3e
4 changed files with 64 additions and 10 deletions

View File

@@ -9,15 +9,29 @@ class Voicenumberblock extends mfBaseModel {
private function getFullNumber($last = false) {
if($last) {
$number = $this->countrycode.$this->areacode.$this->last;
$number = $this->countrycode.$this->areacode.$this->getLast();
} else {
$number = $this->countrycode.$this->areacode.$this->first;
$number = $this->countrycode.$this->areacode.$this->getFirst();
}
return $number;
}
public function getFirst() {
if($this->number_add_zero) {
return "0".$this->first;
}
return $this->first;
}
public function getLast() {
if($this->number_add_zero) {
return "0".$this->last;
}
return $this->last;
}
public function getProperty($name) {
if($this->$name == null) {

View File

@@ -97,8 +97,15 @@ class VoicenumberblockController extends mfBaseController {
$data['name'] = $r->name;
$data['countrycode'] = $r->countrycode;
$data['areacode'] = $r->areacode;
if(substr($r->first,0,1) === "0") {
$data['number_add_zero'] = 1;
} else {
$data['number_add_zero'] = 0;
}
$data['first'] = $r->first;
$data['last'] = $r->last;
$data['comment'] = $r->comment;
$data['edit_by'] = $this->me->id;

View File

@@ -6,6 +6,7 @@ class VoicenumberblockModel {
public $areacode;
public $first;
public $last;
public $number_add_zero;
public $comment;
public $create_by;
@@ -89,6 +90,7 @@ class VoicenumberblockModel {
$db = FronkDB::singleton();
$where = self::getSqlFilter($filter);
mfLoghandler::singleton()->debug($where);
//mfLoghandler::singleton()->log->debug($where);
$res = $db->select("Voicenumberblock", "*", "$where ORDER BY countrycode, areacode, first, last");
if($db->num_rows($res)) {
@@ -123,23 +125,56 @@ class VoicenumberblockModel {
}
if(array_key_exists("first", $filter)) {
$add_zero = false;
$first = $filter['first'];
mfLoghandler::singleton()->debug($first);
if(substr($first,0, 1) === "0") {
$add_zero = true;
$first = substr($first, 1);
}
if(is_numeric($first)) {
$where .= " AND first like '%$first%'";
if($add_zero) {
$where .= " AND number_add_zero = 1";
}
}
}
if(array_key_exists("last", $filter)) {
$add_zero = false;
$last = $filter['last'];
mfLoghandler::singleton()->debug($last);
if(substr($last,0, 1) === "0") {
$add_zero = true;
$last = substr($last, 1);
}
if(is_numeric($last)) {
$where .= " AND last= like '%$last%'";
$where .= " AND last like '%$last%'";
}
}
if(array_key_exists("number", $filter)) {
$add_zero = false;
$number = $filter['number'];
mfLoghandler::singleton()->debug($number);
if(substr($number,0, 1) === "0") {
$add_zero = true;
$number = substr($number, 1);
}
if(is_numeric($number)) {
$where .= " AND first <= $number AND last >= $number";
if($add_zero) {
$where .= " AND number_add_zero = 1";
}
}
}