feat: [tax-invoice] 바로빌 SOAP 연동 및 공급자 설정 API 추가

- BarobillService HTTP→SOAP 전환 (MNG EtaxController 포팅)
- TI SOAP 클라이언트, callSoap(), buildTaxInvoiceData MNG 형식 적용
- issueTaxInvoice/cancelTaxInvoice/checkNtsSendStatus SOAP 방식
- 공급자 설정 조회/저장 API (GET/PUT /supplier-settings)
- 생성+즉시발행 통합 API (POST /issue-direct)
- SaveSupplierSettingsRequest FormRequest 추가
This commit is contained in:
김보곤
2026-02-21 08:31:34 +09:00
parent cdbb825fbe
commit 3b116c980b
5 changed files with 409 additions and 188 deletions

View File

@@ -6,6 +6,7 @@
use App\Http\Controllers\Controller;
use App\Http\Requests\TaxInvoice\CancelTaxInvoiceRequest;
use App\Http\Requests\TaxInvoice\CreateTaxInvoiceRequest;
use App\Http\Requests\TaxInvoice\SaveSupplierSettingsRequest;
use App\Http\Requests\TaxInvoice\TaxInvoiceListRequest;
use App\Http\Requests\TaxInvoice\TaxInvoiceSummaryRequest;
use App\Http\Requests\TaxInvoice\UpdateTaxInvoiceRequest;
@@ -148,4 +149,44 @@ public function summary(TaxInvoiceSummaryRequest $request)
message: __('message.fetched')
);
}
/**
* 공급자 설정 조회
*/
public function supplierSettings()
{
$settings = $this->taxInvoiceService->getSupplierSettings();
return ApiResponse::handle(
data: $settings,
message: __('message.fetched')
);
}
/**
* 공급자 설정 저장
*/
public function saveSupplierSettings(SaveSupplierSettingsRequest $request)
{
$settings = $this->taxInvoiceService->saveSupplierSettings($request->validated());
return ApiResponse::handle(
data: $settings,
message: __('message.updated')
);
}
/**
* 세금계산서 생성 + 즉시 발행
*/
public function storeAndIssue(CreateTaxInvoiceRequest $request)
{
$taxInvoice = $this->taxInvoiceService->createAndIssue($request->validated());
return ApiResponse::handle(
data: $taxInvoice,
message: __('message.tax_invoice.issued'),
status: 201
);
}
}