feat: [finance] 계정별원장·손익계산서 API 추가
- GET /api/v1/account-ledger: 계정별원장 조회 (이월잔액, 월별소계/누계) - GET /api/v1/income-statement: 손익계산서 조회 (당기/전기 비교, 단위변환) - KIS 표준 계정과목 sub_category 기반 자동 매핑 - 일반전표 + 홈택스 분개 UNION ALL 통합 집계
This commit is contained in:
31
app/Http/Controllers/Api/V1/AccountLedgerController.php
Normal file
31
app/Http/Controllers/Api/V1/AccountLedgerController.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\V1;
|
||||
|
||||
use App\Helpers\ApiResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Services\AccountLedgerService;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class AccountLedgerController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
private readonly AccountLedgerService $service
|
||||
) {}
|
||||
|
||||
/**
|
||||
* 계정별원장 조회
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'start_date' => 'required|date',
|
||||
'end_date' => 'required|date|after_or_equal:start_date',
|
||||
'account_code' => 'required|string|max:10',
|
||||
]);
|
||||
|
||||
return ApiResponse::handle(function () use ($request) {
|
||||
return $this->service->index($request->only(['start_date', 'end_date', 'account_code']));
|
||||
}, __('message.fetched'));
|
||||
}
|
||||
}
|
||||
31
app/Http/Controllers/Api/V1/IncomeStatementController.php
Normal file
31
app/Http/Controllers/Api/V1/IncomeStatementController.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\V1;
|
||||
|
||||
use App\Helpers\ApiResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Services\IncomeStatementService;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class IncomeStatementController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
private readonly IncomeStatementService $service
|
||||
) {}
|
||||
|
||||
/**
|
||||
* 손익계산서 조회
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'start_date' => 'required|date',
|
||||
'end_date' => 'required|date|after_or_equal:start_date',
|
||||
'unit' => 'nullable|in:won,thousand,million',
|
||||
]);
|
||||
|
||||
return ApiResponse::handle(function () use ($request) {
|
||||
return $this->service->data($request->only(['start_date', 'end_date', 'unit']));
|
||||
}, __('message.fetched'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user