fix: [payroll] tenant_id null 오류 수정

- session('selected_tenant_id')에 기본값 1 추가
- PayrollSetting::getOrCreate, scopeForTenant 수정
- PayrollService 전체 tenant_id 조회에 기본값 적용
- Payroll 모델 scopeForTenant 동일 패턴 적용
This commit is contained in:
김보곤
2026-02-27 09:42:58 +09:00
parent 1f81e6672d
commit af17880246
3 changed files with 15 additions and 21 deletions

View File

@@ -155,12 +155,9 @@ public function isDeletable(): bool
public function scopeForTenant($query, ?int $tenantId = null)
{
$tenantId = $tenantId ?? session('selected_tenant_id');
if ($tenantId) {
return $query->where($this->table.'.tenant_id', $tenantId);
}
$tenantId = $tenantId ?? session('selected_tenant_id', 1);
return $query;
return $query->where($this->table.'.tenant_id', $tenantId);
}
public function scopeForPeriod($query, int $year, int $month)

View File

@@ -62,12 +62,9 @@ class PayrollSetting extends Model
public function scopeForTenant($query, ?int $tenantId = null)
{
$tenantId = $tenantId ?? session('selected_tenant_id');
if ($tenantId) {
return $query->where('tenant_id', $tenantId);
}
$tenantId = $tenantId ?? session('selected_tenant_id', 1);
return $query;
return $query->where('tenant_id', $tenantId);
}
// =========================================================================
@@ -76,7 +73,7 @@ public function scopeForTenant($query, ?int $tenantId = null)
public static function getOrCreate(?int $tenantId = null): self
{
$tenantId = $tenantId ?? session('selected_tenant_id');
$tenantId = $tenantId ?? session('selected_tenant_id', 1);
return self::firstOrCreate(
['tenant_id' => $tenantId],

View File

@@ -46,7 +46,7 @@ class PayrollService
*/
private function buildFilteredQuery(array $filters = [])
{
$tenantId = session('selected_tenant_id');
$tenantId = session('selected_tenant_id', 1);
$query = Payroll::query()
->with(['user', 'user.tenantProfiles' => fn ($q) => $q->where('tenant_id', $tenantId), 'user.tenantProfiles.department'])
@@ -98,7 +98,7 @@ public function getExportData(array $filters = []): Collection
*/
public function getMonthlyStats(?int $year = null, ?int $month = null): array
{
$tenantId = session('selected_tenant_id');
$tenantId = session('selected_tenant_id', 1);
$year = $year ?? now()->year;
$month = $month ?? now()->month;
@@ -134,7 +134,7 @@ public function getMonthlyStats(?int $year = null, ?int $month = null): array
*/
public function storePayroll(array $data): Payroll
{
$tenantId = session('selected_tenant_id');
$tenantId = session('selected_tenant_id', 1);
return DB::transaction(function () use ($data, $tenantId) {
$calculated = $this->calculateAmounts($data);
@@ -172,7 +172,7 @@ public function storePayroll(array $data): Payroll
*/
public function updatePayroll(int $id, array $data): ?Payroll
{
$tenantId = session('selected_tenant_id');
$tenantId = session('selected_tenant_id', 1);
$payroll = Payroll::query()
->forTenant($tenantId)
@@ -211,7 +211,7 @@ public function updatePayroll(int $id, array $data): ?Payroll
*/
public function deletePayroll(int $id): bool
{
$tenantId = session('selected_tenant_id');
$tenantId = session('selected_tenant_id', 1);
$payroll = Payroll::query()
->forTenant($tenantId)
@@ -232,7 +232,7 @@ public function deletePayroll(int $id): bool
*/
public function confirmPayroll(int $id): ?Payroll
{
$tenantId = session('selected_tenant_id');
$tenantId = session('selected_tenant_id', 1);
$payroll = Payroll::query()
->forTenant($tenantId)
@@ -257,7 +257,7 @@ public function confirmPayroll(int $id): ?Payroll
*/
public function payPayroll(int $id): ?Payroll
{
$tenantId = session('selected_tenant_id');
$tenantId = session('selected_tenant_id', 1);
$payroll = Payroll::query()
->forTenant($tenantId)
@@ -281,7 +281,7 @@ public function payPayroll(int $id): ?Payroll
*/
public function bulkGenerate(int $year, int $month): array
{
$tenantId = session('selected_tenant_id');
$tenantId = session('selected_tenant_id', 1);
$settings = PayrollSetting::getOrCreate($tenantId);
$created = 0;
$skipped = 0;
@@ -468,7 +468,7 @@ private function calculateEmploymentInsurance(float $grossSalary, PayrollSetting
*/
public function getDepartments(): Collection
{
$tenantId = session('selected_tenant_id');
$tenantId = session('selected_tenant_id', 1);
return Department::query()
->where('is_active', true)
@@ -483,7 +483,7 @@ public function getDepartments(): Collection
*/
public function getActiveEmployees(): Collection
{
$tenantId = session('selected_tenant_id');
$tenantId = session('selected_tenant_id', 1);
return Employee::query()
->with('user:id,name')