|
@@ -193,30 +193,53 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
$serialNumber = $onu->getSerialNumber();
|
|
|
$ponSerialNumberAux = $onu->getPonSerialNumberAux();
|
|
|
|
|
|
- if(is_null($serialNumber) || empty($serialNumber)) {
|
|
|
- if(strlen($ponSerialNumber) > 12) {
|
|
|
- // It is a serial number > set serial number
|
|
|
- $onu->setSerialNumber($ponSerialNumber);
|
|
|
- } else {
|
|
|
- // It is a pon serial number > convert vendor id from string to hexa and set serial number
|
|
|
- $vendoId = $this->str2hex(substr($ponSerialNumber,0,4));
|
|
|
- $rest = substr($ponSerialNumber,4);
|
|
|
- $sn = strtolower($vendoId.$rest);
|
|
|
- $onu->setSerialNumber($sn);
|
|
|
+ if(strlen($ponSerialNumber) == 12 || strlen($ponSerialNumber) == 16) {
|
|
|
+
|
|
|
+ if(is_null($serialNumber) || empty($serialNumber)) {
|
|
|
+ if(strlen($ponSerialNumber) == 16) {
|
|
|
+ // It is a serial number > set serial number
|
|
|
+ $onu->setSerialNumber($ponSerialNumber);
|
|
|
+ } else {
|
|
|
+ // It is a pon serial number > convert vendor id from string to hexa and set serial number
|
|
|
+ $vendoId = $this->str2hex(substr($ponSerialNumber,0,4));
|
|
|
+ $rest = substr($ponSerialNumber,4);
|
|
|
+ $sn = strtolower($vendoId.$rest);
|
|
|
+ $onu->setSerialNumber($sn);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
+
|
|
|
+ if(is_null($ponSerialNumberAux) || empty($ponSerialNumberAux)) {
|
|
|
+ if(strlen($ponSerialNumber) == 16) {
|
|
|
+ // It is a serial number > convert vendor id from hexa to string and set pon serial number
|
|
|
+ $_vendor = substr($ponSerialNumber,0,8);
|
|
|
+ $hex = strtoupper($_vendor);
|
|
|
|
|
|
- if(is_null($ponSerialNumberAux) || empty($ponSerialNumberAux)) {
|
|
|
- if(strlen($ponSerialNumber) > 12) {
|
|
|
- // It is a serial number > convert vendor id from hexa to string and set pon serial number
|
|
|
- $vendoId = $this->hex2str(substr($ponSerialNumber,0,8));
|
|
|
- $rest = substr($ponSerialNumber,8);
|
|
|
- $psn = strtolower($vendoId.$rest);
|
|
|
- $onu->setPonSerialNumberAux($psn);
|
|
|
- } else {
|
|
|
- // It is a pon serial number > set pon serial number
|
|
|
- $onu->setPonSerialNumberAux($ponSerialNumber);
|
|
|
+ $isNumeric = true;
|
|
|
+ for($i=0;$i<strlen($hex);$i+=2) {
|
|
|
+ if(!is_numeric(substr($hex,$i,2))) {
|
|
|
+ $isNumeric = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(ctype_xdigit($isNumeric)) { //hexa check
|
|
|
+ $vendoId = $this->hex2str($hex);
|
|
|
+ $rest = substr($ponSerialNumber,8);
|
|
|
+ $psn = strtolower($vendoId.$rest);
|
|
|
+ $onu->setPonSerialNumberAux($psn);
|
|
|
+ } else {
|
|
|
+ $onu->setPonSerialNumberAux($ponSerialNumber);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // It is a pon serial number > set pon serial number
|
|
|
+ $onu->setPonSerialNumberAux($ponSerialNumber);
|
|
|
+ }
|
|
|
}
|
|
|
+ } else {
|
|
|
+ if(is_null($serialNumber) || empty($serialNumber))
|
|
|
+ $onu->setSerialNumber($ponSerialNumber);
|
|
|
+
|
|
|
+ if(is_null($ponSerialNumberAux) || empty($ponSerialNumberAux))
|
|
|
+ $onu->setPonSerialNumberAux($ponSerialNumber);
|
|
|
}
|
|
|
}
|
|
|
|