36 lines
808 B
PHP
36 lines
808 B
PHP
<?php
|
|
|
|
namespace App\Services;
|
|
|
|
use App\Models\Client;
|
|
|
|
class ClientLookupService
|
|
{
|
|
public function findBySqlAccCode(?string $sqlAccCode): ?Client
|
|
{
|
|
$sqlAccCode = $this->normalizeSqlAccCode($sqlAccCode);
|
|
|
|
if ($sqlAccCode === null) {
|
|
return null;
|
|
}
|
|
|
|
return Client::query()
|
|
->where('sql_acc_code', $sqlAccCode)
|
|
->orWhereHas('customers', function ($query) use ($sqlAccCode) {
|
|
$query->where('sql_acc_code', $sqlAccCode);
|
|
})
|
|
->first();
|
|
}
|
|
|
|
public function normalizeSqlAccCode(?string $sqlAccCode): ?string
|
|
{
|
|
if ($sqlAccCode === null) {
|
|
return null;
|
|
}
|
|
|
|
$sqlAccCode = trim($sqlAccCode);
|
|
|
|
return $sqlAccCode === '' ? null : $sqlAccCode;
|
|
}
|
|
}
|