inspiren-sem-tool/app/Services/ClientLookupService.php
brian-inspiren 221d3f8173
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
feat: sem codebase
2026-05-21 11:28:03 +08:00

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;
}
}