fix:계정과목을 글로벌 데이터로 변경 (테넌트 무관)
This commit is contained in:
@@ -584,12 +584,11 @@ private function getBankName(string $code): string
|
||||
}
|
||||
|
||||
/**
|
||||
* 계정과목 목록 조회
|
||||
* 계정과목 목록 조회 (글로벌 데이터)
|
||||
*/
|
||||
public function accountCodes(): JsonResponse
|
||||
{
|
||||
$tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID);
|
||||
$codes = AccountCode::getActiveByTenant($tenantId);
|
||||
$codes = AccountCode::getActive();
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
@@ -603,15 +602,11 @@ public function accountCodes(): JsonResponse
|
||||
}
|
||||
|
||||
/**
|
||||
* 전체 계정과목 목록 조회 (설정용, 비활성 포함)
|
||||
* 전체 계정과목 목록 조회 (설정용, 비활성 포함, 글로벌 데이터)
|
||||
*/
|
||||
public function accountCodesAll(): JsonResponse
|
||||
{
|
||||
$tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID);
|
||||
$codes = AccountCode::where('tenant_id', $tenantId)
|
||||
->orderBy('sort_order')
|
||||
->orderBy('code')
|
||||
->get();
|
||||
$codes = AccountCode::getAll();
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
@@ -620,23 +615,19 @@ public function accountCodesAll(): JsonResponse
|
||||
}
|
||||
|
||||
/**
|
||||
* 계정과목 추가
|
||||
* 계정과목 추가 (글로벌 데이터)
|
||||
*/
|
||||
public function accountCodeStore(Request $request): JsonResponse
|
||||
{
|
||||
try {
|
||||
$tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID);
|
||||
|
||||
$validated = $request->validate([
|
||||
'code' => 'required|string|max:10',
|
||||
'name' => 'required|string|max:100',
|
||||
'category' => 'nullable|string|max:50',
|
||||
]);
|
||||
|
||||
// 중복 체크
|
||||
$exists = AccountCode::where('tenant_id', $tenantId)
|
||||
->where('code', $validated['code'])
|
||||
->exists();
|
||||
// 중복 체크 (글로벌)
|
||||
$exists = AccountCode::where('code', $validated['code'])->exists();
|
||||
|
||||
if ($exists) {
|
||||
return response()->json([
|
||||
@@ -645,10 +636,10 @@ public function accountCodeStore(Request $request): JsonResponse
|
||||
], 422);
|
||||
}
|
||||
|
||||
$maxSort = AccountCode::where('tenant_id', $tenantId)->max('sort_order') ?? 0;
|
||||
$maxSort = AccountCode::max('sort_order') ?? 0;
|
||||
|
||||
$accountCode = AccountCode::create([
|
||||
'tenant_id' => $tenantId,
|
||||
'tenant_id' => self::HEADQUARTERS_TENANT_ID, // 글로벌 데이터는 기본 테넌트에 저장
|
||||
'code' => $validated['code'],
|
||||
'name' => $validated['name'],
|
||||
'category' => $validated['category'] ?? null,
|
||||
@@ -670,16 +661,12 @@ public function accountCodeStore(Request $request): JsonResponse
|
||||
}
|
||||
|
||||
/**
|
||||
* 계정과목 수정
|
||||
* 계정과목 수정 (글로벌 데이터)
|
||||
*/
|
||||
public function accountCodeUpdate(Request $request, int $id): JsonResponse
|
||||
{
|
||||
try {
|
||||
$tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID);
|
||||
|
||||
$accountCode = AccountCode::where('tenant_id', $tenantId)
|
||||
->where('id', $id)
|
||||
->first();
|
||||
$accountCode = AccountCode::find($id);
|
||||
|
||||
if (!$accountCode) {
|
||||
return response()->json([
|
||||
@@ -695,10 +682,9 @@ public function accountCodeUpdate(Request $request, int $id): JsonResponse
|
||||
'is_active' => 'sometimes|boolean',
|
||||
]);
|
||||
|
||||
// 코드 변경 시 중복 체크
|
||||
// 코드 변경 시 중복 체크 (글로벌)
|
||||
if (isset($validated['code']) && $validated['code'] !== $accountCode->code) {
|
||||
$exists = AccountCode::where('tenant_id', $tenantId)
|
||||
->where('code', $validated['code'])
|
||||
$exists = AccountCode::where('code', $validated['code'])
|
||||
->where('id', '!=', $id)
|
||||
->exists();
|
||||
|
||||
@@ -726,16 +712,12 @@ public function accountCodeUpdate(Request $request, int $id): JsonResponse
|
||||
}
|
||||
|
||||
/**
|
||||
* 계정과목 삭제
|
||||
* 계정과목 삭제 (글로벌 데이터)
|
||||
*/
|
||||
public function accountCodeDestroy(int $id): JsonResponse
|
||||
{
|
||||
try {
|
||||
$tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID);
|
||||
|
||||
$accountCode = AccountCode::where('tenant_id', $tenantId)
|
||||
->where('id', $id)
|
||||
->first();
|
||||
$accountCode = AccountCode::find($id);
|
||||
|
||||
if (!$accountCode) {
|
||||
return response()->json([
|
||||
|
||||
@@ -36,14 +36,31 @@ public function tenant(): BelongsTo
|
||||
}
|
||||
|
||||
/**
|
||||
* 테넌트별 활성 계정과목 조회
|
||||
* 테넌트별 활성 계정과목 조회 (하위 호환용)
|
||||
*/
|
||||
public static function getActiveByTenant(int $tenantId)
|
||||
{
|
||||
return self::where('tenant_id', $tenantId)
|
||||
->where('is_active', true)
|
||||
return self::getActive();
|
||||
}
|
||||
|
||||
/**
|
||||
* 전체 활성 계정과목 조회 (글로벌)
|
||||
*/
|
||||
public static function getActive()
|
||||
{
|
||||
return self::where('is_active', true)
|
||||
->orderBy('sort_order')
|
||||
->orderBy('code')
|
||||
->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* 전체 계정과목 조회 (글로벌)
|
||||
*/
|
||||
public static function getAll()
|
||||
{
|
||||
return self::orderBy('sort_order')
|
||||
->orderBy('code')
|
||||
->get();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user