- GET /api/v1/income-statement/monthly?year=2026&unit=won 추가 - buildSections 공통 로직 분리 - getAccountCodes, getFiscalYear 헬퍼 분리
47 lines
1.3 KiB
PHP
47 lines
1.3 KiB
PHP
<?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'));
|
|
}
|
|
|
|
/**
|
|
* 손익계산서 월별 조회
|
|
*/
|
|
public function monthly(Request $request)
|
|
{
|
|
$request->validate([
|
|
'year' => 'required|integer|min:2020|max:2100',
|
|
'unit' => 'nullable|in:won,thousand,million',
|
|
]);
|
|
|
|
return ApiResponse::handle(function () use ($request) {
|
|
return $this->service->monthly($request->only(['year', 'unit']));
|
|
}, __('message.fetched'));
|
|
}
|
|
}
|