Files
sam-api/app/Models/Tenants/Deposit.php
kent b2cc054309 fix: [models] Tenants 모델 관계 경로 오류 수정
- Client 관계: App\Models\Tenants\Client → App\Models\Orders\Client
  - Deposit, Withdrawal, Sale, Purchase 모델 수정
- User 관계: App\Models\User → App\Models\Members\User
  - Deposit, Withdrawal, Sale, Purchase, TaxInvoice, BarobillSetting, AiReport 모델 수정

Finance Deposits CRUD Test 통과 확인 (7/7 SUCCESS)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 04:12:57 +09:00

93 lines
2.0 KiB
PHP

<?php
namespace App\Models\Tenants;
use App\Traits\BelongsToTenant;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
class Deposit extends Model
{
use BelongsToTenant, SoftDeletes;
protected $fillable = [
'tenant_id',
'deposit_date',
'client_id',
'client_name',
'bank_account_id',
'amount',
'payment_method',
'account_code',
'description',
'reference_type',
'reference_id',
'created_by',
'updated_by',
'deleted_by',
];
protected $casts = [
'deposit_date' => 'date',
'amount' => 'decimal:2',
'client_id' => 'integer',
'bank_account_id' => 'integer',
'reference_id' => 'integer',
];
/**
* 결제수단 목록
*/
public const PAYMENT_METHODS = [
'cash' => '현금',
'transfer' => '계좌이체',
'card' => '카드',
'check' => '수표',
];
/**
* 거래처 관계
*/
public function client(): BelongsTo
{
return $this->belongsTo(\App\Models\Orders\Client::class);
}
/**
* 입금 계좌 관계
*/
public function bankAccount(): BelongsTo
{
return $this->belongsTo(BankAccount::class);
}
/**
* 생성자 관계
*/
public function creator(): BelongsTo
{
return $this->belongsTo(\App\Models\Members\User::class, 'created_by');
}
/**
* 거래처명 조회 (회원/비회원 통합)
*/
public function getDisplayClientNameAttribute(): string
{
if ($this->client) {
return $this->client->name;
}
return $this->client_name ?? '';
}
/**
* 결제수단 라벨
*/
public function getPaymentMethodLabelAttribute(): string
{
return self::PAYMENT_METHODS[$this->payment_method] ?? $this->payment_method;
}
}