Add unit tests for EconomicCustomerModel parsing and validation
This commit is contained in:
@@ -477,16 +477,27 @@ class users_o extends db
|
||||
// Create a temporary user object
|
||||
$tmp_user = new users_o();
|
||||
$tmp_user->getUserByCustomerNumber($customer_number);
|
||||
$fallbackName = null;
|
||||
if ($tmp_user->exists()) {
|
||||
$displayName = $tmp_user->display_name->value();
|
||||
if (is_string($displayName) && trim($displayName) !== '') {
|
||||
$fallbackName = $displayName;
|
||||
}
|
||||
}
|
||||
// Get the customer name (Check cache first)
|
||||
$cached = $tmp_user->getCached('economic_customer');
|
||||
if (!$cached) {
|
||||
$tmp_user->getCustomerEcocomicData($customer_number);
|
||||
try {
|
||||
$tmp_user->getCustomerEcocomicData($customer_number);
|
||||
} catch (Exception) {
|
||||
return $fallbackName;
|
||||
}
|
||||
$cached = $tmp_user->getCached('economic_customer');
|
||||
}
|
||||
if ($cached) {
|
||||
if ($cached && isset($cached->name) && is_string($cached->name) && trim($cached->name) !== '') {
|
||||
return $cached->name;
|
||||
}
|
||||
return null;
|
||||
return $fallbackName;
|
||||
}
|
||||
|
||||
public function getCustomerEcocomicData(int $customer_number = null): users_o
|
||||
@@ -502,7 +513,20 @@ class users_o extends db
|
||||
return $this;
|
||||
}
|
||||
|
||||
$this->economic_customer = (new economic_customer_mo())->getCustomerByCustomerNumber($customer_number);
|
||||
$cachedCustomer = $this->getCached('economic_customer');
|
||||
if (is_object($cachedCustomer)) {
|
||||
$cachedCustomerNumber = (int)($cachedCustomer->customerNumber ?? $cachedCustomer->customer_number ?? 0);
|
||||
if ($cachedCustomerNumber === $customer_number) {
|
||||
$this->economic_customer = (new economic_customer_mo())->parseCustomer($cachedCustomer);
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$this->economic_customer = (new economic_customer_mo())->getCustomerByCustomerNumber($customer_number);
|
||||
} catch (Exception) {
|
||||
$this->economic_customer = new economic_customer_mo();
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user