fix: [payroll] tenant_id null 오류 수정
- session('selected_tenant_id')에 기본값 1 추가
- PayrollSetting::getOrCreate, scopeForTenant 수정
- PayrollService 전체 tenant_id 조회에 기본값 적용
- Payroll 모델 scopeForTenant 동일 패턴 적용
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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],
|
||||
|
||||
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user