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); $c_num = trim($contact_num);
// remove any non digit character from string // clean the numbers
$clean_number = preg_replace('~\D~', '', $c_num); $cleaned_number = $this->normalizeContactNumber($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 = '';
}
// not a blank, save it // 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; 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 "";
}
} }