From 3d89199fd88342646bd2b8260b85ce5ede266b6d Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Tue, 1 Jun 2021 03:06:30 +0000 Subject: [PATCH] Improve flow for cleaning contact numbers. #572 --- .../ImportCarClubCustomerDataCommand.php | 67 ++++++++++--------- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/src/Command/ImportCarClubCustomerDataCommand.php b/src/Command/ImportCarClubCustomerDataCommand.php index 7cda2676..49ef7679 100644 --- a/src/Command/ImportCarClubCustomerDataCommand.php +++ b/src/Command/ImportCarClubCustomerDataCommand.php @@ -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 ""; + } }