Improve flow for cleaning contact numbers. #572

This commit is contained in:
Korina Cordero 2021-06-01 03:06:30 +00:00
parent bfc86abd6a
commit 3d89199fd8

View file

@ -83,40 +83,13 @@ class ImportCarClubCustomerDataCommand extends Command
{
$c_num = trim($contact_num);
// remove any non digit character from string
$clean_number = preg_replace('~\D~', '', $c_num);
error_log('cleaned ' . $clean_number);
// QUESTION: why are these all ifs and not else ifs?
// does it fit our 09XXXXXXXXX pattern?
if (preg_match('/^09[0-9]{9}$/', $clean_number))
{
// remove first '0'
$clean_number = substr($clean_number, 1);
error_log("CONVERTED TO $clean_number");
}
// does it fit our 63XXXXXXXXXX pattern?
if (preg_match('/^63[0-9]{10}$/', $clean_number))
{
// remove the 63
$clean_number = substr($clean_number, 2);
error_log("CONVERTED TO $clean_number");
}
// does it fit our 9XXXXXXXXX pattern?
if (!preg_match('/^9[0-9]{9}$/', $clean_number))
{
error_log('not a mobile number');
// set clean_number to blank since we don't save a non-mobile number
$clean_number = '';
}
// clean the numbers
$cleaned_number = $this->normalizeContactNumber($c_num);
// not a blank, save it
if ($clean_number != '')
if ($cleaned_number != '')
{
$clean_nums[] = $clean_number;
$clean_nums[] = $cleaned_number;
}
}
@ -428,4 +401,36 @@ class ImportCarClubCustomerDataCommand extends Command
return $new_cust_tag;
}
protected function normalizeContactNumber($c_num)
{
// remove any non digit character from string
$clean_number = preg_replace('~\D~', '', $c_num);
error_log('cleaned ' . $clean_number);
// does it fit our 09XXXXXXXXX pattern?
if (preg_match('/^09[0-9]{9}$/', $clean_number))
{
// remove first '0'
$clean_number = substr($clean_number, 1);
error_log("CONVERTED TO $clean_number");
return $clean_number;
}
// does it fit our 63XXXXXXXXXX pattern?
else if (preg_match('/^63[0-9]{10}$/', $clean_number))
{
// remove the 63
$clean_number = substr($clean_number, 2);
error_log("CONVERTED TO $clean_number");
return $clean_number;
}
// does it fit our 9XXXXXXXXX pattern?
else if (preg_match('/^9[0-9]{9}$/', $clean_number))
{
error_log("already cleaned $clean_number");
return $clean_number;
}
return "";
}
}